Hey Kostaya, wow, thanks. It seems I'll be forced don't support external storage. There is really a conflict between the statements... I don't know such missunderstandings by Google ^^
Thanks a lot for this Kostaya! You helped me so many times with solutions and important information ;-) -Danny S. On Feb 2, 12:46 pm, Kostya Vasilyev <[email protected]> wrote: > Danny, > > According to this: > > http://developer.android.com/reference/android/content/Intent.html#AC... > > > The extra data EXTRA_CHANGED_PACKAGE_LIST contains a list of packages > > whose availability changed. The extra data EXTRA_CHANGED_UID_LIST > > contains a list of uids of packages whose availability changed. *Note > > that the packages in this list do not receive this broadcast.* > > So you might want to run some tests before relying on this broadcast. > > I see that Mark Murphy submitted a documentation bug for this: > > http://code.google.com/p/android/issues/detail?id=8485 > > -- Kostya > > 02.02.2011 14:31, Danny S. пишет: > > > > > > > > > Today I read this on googles documentation: > > > Broadcast Receivers listening for "boot completed" > > The system delivers the ACTION_BOOT_COMPLETED broadcast before the > > external storage is mounted to the device. If your application is > > installed on the external storage, it can never receive this > > broadcast. > > > I don't know why it worked in past, cause I used the same device > > (emulator) with "sdcard" all the time, but this seems to be the reason > > why this broadcast is never received. Now I have 2 possibilities: > > > 1. remove the possibility to install the app on external storage (I > > wanted to support App2SD...). Then the broadcast should be received. > > 2. find another indicator to start my service, e.g. > > ACTION_EXTERNAL_APPLICATIONS_AVAILABLE (I prefer this, are you with > > me?) > > 3. Do you have an other idea? > > > Detailled > > infos:http://developer.android.com/guide/appendix/install-location.html > > > What would you do? > > > Thanks a lot! > > -Danny > > > On Feb 1, 11:40 am, "Danny S."<[email protected]> wrote: > >> OMG, today I determined, that my "BootReceiver" is not called > >> again :'( But I changed nothing in relation with this :( it looks like > >> an issue to me. I don't do anything in the onReceive yet, only log out > >> something. This morning it worked very well then I started to > >> implement code to start my applications service within the receiver. > >> That worked very well. I used the context.getApplicationContext() to > >> start the Service. This worked for me, then I tried to change to start > >> the service with context instead of application context. From this > >> moment on I've seen no output for onReceive. The broadcast receiver is > >> never called when the device booted. I build it back to version with > >> only log output implementation in the onReceive method. But I still > >> dont get it to work again. I tried to use a completely new created > >> emulator, but nothing changed :-( I don#t think I am doing something > >> wrong here, cause I got it to work in past... > > >> -Danny S. > > >> On Jan 27, 4:33 pm, "Danny S."<[email protected]> wrote: > > >>> Hi together, > >>> using a second receiver worked for me: > >>> ... > >>> <receiver android:name=".AlertReceiver" /> > >>> <!-- only for device is booted detection: --> > >>> <receiver android:name=".BootedReceiver"> > >>> <intent-filter> > >>> <action > >>> android:name="android.intent.action.BOOT_COMPLETED" /> > >>> </intent-filter> > >>> </receiver> > >>> ... > >>> I am confused doing it this way. I would have preferred using only one > >>> receiver for handling corresponding actions but it seems this is the > >>> only way... Maybe it has to be like this, but somebody would explain > >>> to me ;-) > >>> Thanks! > >>> -DannyS. > >>> On 27 Jan., 16:19, "DannyS."<[email protected]> wrote: > >>>> Kostya, > >>>> yeah, I am with you and think my AndroidManifest looks correct. I > >>>> figured out too, that all data get lost when "Wipe user data" is > >>>> enabled. I started the emulator always without "Wipe user data" but it > >>>> does not work. Maybe it is an emulator problem... I can try to figure > >>>> out on my real device and show up a notification with information > >>>> about intent's action when onReceive() is called. > >>>> I temporery implemented notification output and tested it on emulator. > >>>> One for boot action and one for any other. In any case there should be > >>>> a notification but when I restart the emulator nothing happened... > >>>> onReceive is not called. As said I'll try with my real device and give > >>>> response ASAP. If it does not work I try using a second receiver that > >>>> handles the boot action and nothing else... hope I can solve the > >>>> problem soon ;-) > >>>> Thanks for your help! > >>>> -DannyS. > >>>> On 27 Jan., 15:23, Kostya Vasilyev<[email protected]> wrote: > >>>>> Danny, > >>>>> Your app's manifest for the broadcast action, as well as the permission, > >>>>> look fine. > >>>>> When you start the emulator, make sure you don't have "Wipe user data" > >>>>> enabled, as that will erase the application, so it won't be available at > >>>>> boot. > >>>>> Other than that, maybe you're just not seeing the logcat message? Try > >>>>> doing something more visible, like a notification or starting an > >>>>> activity. > >>>>> -- Kostya > >>>>> 27.01.2011 16:49,DannyS. пишет: > >>>>>> Hi Kostya, > >>>>>> I removed the category, but have still the same issue: boot completed > >>>>>> is never recognized. You said you dont see the other action. I create > >>>>>> the Broadcast- Intent and put it into PendingIntent.getBroadcast(), > >>>>>> without a action in AndroidManifest: > >>>>>> ... > >>>>>> alertReceiverIntent = new Intent(this, AlertReceiver.class); > >>>>>> alarmSender = PendingIntent.getBroadcast(this, task.getId(), > >>>>>> alertReceiverIntent, 0); > >>>>>> // insert a new alert > >>>>>> mAlarmManager.set(AlarmManager.RTC_WAKEUP, deliverTime, alarmSender); > >>>>>> ... > >>>>>> The receiver is used like expected, onReceive() is called, but never > >>>>>> when the device came up. > >>>>>> I can try using a second receiver if it is ever possible, only for > >>>>>> boot recognization. But this seems not the best way... My receiver > >>>>>> should be able to differ between actions and do several things... > >>>>>> Thanks a lot! > >>>>>> -DannyS. > >>>>>> On 27 Jan., 14:15, Kostya Vasilyev<[email protected]> wrote: > >>>>>>> Danny, > >>>>>>> You don't need a<category> in the filter to receive BOOT_COMPLETED, > >>>>>>> just<action>. In fact, that's probably the cause of your code not > >>>>>>> receiving it. > >>>>>>> Also I don't see "the other" action in the manifest, for receiving > >>>>>>> your > >>>>>>> own alarms. > >>>>>>> -- Kostya > >>>>>>> 27.01.2011 16:00,DannyS. пишет: > >>>>>>>> Hi, > >>>>>>>> I tried to implement a receiver that will be called when the device > >>>>>>>> booted: > >>>>>>>> <receiver android:name=".AlertReceiver"> > >>>>>>>> <intent-filter> > >>>>>>>> <action > >>>>>>>> android:name="android.intent.action.BOOT_COMPLETED" /> > >>>>>>>> <category > >>>>>>>> android:name="android.intent.category.HOME" /> > >>>>>>>> </intent-filter> > >>>>>>>> </receiver> > >>>>>>>> <uses-permission > >>>>>>>> android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> is > >>>>>>>> already > >>>>>>>> added in AndroidManifest.xml. > >>>>>>>> I am using the receiver for recognizing alarms AND want to use the > >>>>>>>> same for check whether the device has booted. The alarm came up, but > >>>>>>>> I > >>>>>>>> found no output on log console for recognizing that the device booted > >>>>>>>> successfully. Here is the code of the receivers onReceive() method: > >>>>>>>> if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) > >>>>>>>> Log.i("AlertReceiver", "Boot completed :D"); > >>>>>>>> else { > >>>>>>>> Log.d("AlertReceiver", "Intent action is: " + > >>>>>>>> intent.getAction()); > >>>>>>>> Toast.makeText(context, "Alarm scheduled", > >>>>>>>> Toast.LENGTH_SHORT).show(); > >>>>>>>> System.out.println("AlertManager alert > >>>>>>>> succeeded!"); > >>>>>>>> } > >>>>>>>> I started the emulator without new installation of my app so I > >>>>>>>> expected the output "Boot completed :D"... What is my fault? Is my > >>>>>>>> receiver construct in the manifest incorrect? > >>>>>>>> Hope you can help me, > >>>>>>>> Thanks a lot! > >>>>>>>> -DannyS. > >>>>>>>> On 20 Jan., 10:33, Kostya Vasilyev<[email protected]> wrote: > >>>>>>>>> Danny, > >>>>>>>>> Android already keeps a global registry of pending intents, so > >>>>>>>>> keeping a > >>>>>>>>> parallel hash map should not be necessary. > >>>>>>>>> To cancel an alarm, you don't need a reference to the original Java > >>>>>>>>> object, you can just construct a pending intent the same way as you > >>>>>>>>> did > >>>>>>>>> when setting the alarm (including the request code). > >>>>>>>>> The hash table can go away with the process, while alarms persist > >>>>>>>>> (with > >>>>>>>>> them being inside Android). If you're relying on the map being an > >>>>>>>>> up-to-date representation of your alarms, make sure that it's > >>>>>>>>> correctly > >>>>>>>>> reconstructed from scratch - or get rid of it altogether. > >>>>>>>>> -- Kostya > >>>>>>>>> 20.01.2011 11:55,DannyS. пишет: > >>>>>>>>>> Good Morning! > >>>>>>>>>> Wow, you helped me to get it work. I create a PendingIntent with a > >>>>>>>>>> unique id and store the intent mapped to their IDs in a HashMap. I > >>>>>>>>>> collect all intents with the known id and can the cancel them using > >>>>>>>>>> the AlarmManager. I dont know if it is recommended and efficient to > >>>>>>>>>> store those intents in a HashMap, but I need the PendingIntent when > >>>>>>>>>> I'll cancel the alarm and it worked. > >>>>>>>>>> Maybe I have to optimize something, but now I understood how to > >>>>>>>>>> work > >>>>>>>>>> with the AlarmManager AND multiple scheduling tasks. > >>>>>>>>>> Thans a lot! > >>>>>>>>>> -DannyS. > >>>>>>>>>> On 19 Jan., 17:26, Kostya Vasilyev<[email protected]> > >>>>>>>>>> wrote: > >>>>>>>>>>> Danny, > >>>>>>>>>>> The issue with multiple alarms comes up quite often, this is one > >>>>>>>>>>> of > >>>>>>>>>>> several responses: > >>>>>>>>>>>http://groups.google.com/group/android-developers/browse_thread/threa... > >>>>>>>>>>> --... > > read more » -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

