Intereting Posts
Добавить идентификацию маркера на google maps v2 api для Android Как уведомить о намерениях уведомления, а не делать новые намерения? Какой файл градиента использовать для установки приложения как отлаживаемого? Андроид sdk подскажет тост в настройках аккаунта Канонический способ запуска нескольких вложенных действий и получения результата onActivityResult Фокус не работает должным образом в ListView Как изменить тему приложения Android? Ошибка подключения Bluetooth Bluetooth (нет найденного носка, scn 1) – бесконечный цикл Несколько отношений toMany с одной таблицей RecyclerView элементы с большим пустым пространством после 23.2.0 Плохие стороны C2dM Android – Как круговое масштабирование / увеличение части изображения? Тень с плавающей запятой Перетаскивание элементов в списке в android? Установка системных изображений Intel x86 Atom в автономном режиме (вручную) для Android

Как поймать систему трансляции BOOT_COMPLETED, моя программа просто не работает?

Я подал небольшую программу, чтобы поймать системную трансляцию BOOT_COMPLETED , но она просто не работает:

 package com.alex.app.testsysreboot; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.i("my_tag", "system reboot completed......."); } } 

manifest.xml

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.alex.app.testsysreboot" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <receiver android:name=".MyReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver> </application> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> </manifest> ? <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.alex.app.testsysreboot" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <receiver android:name=".MyReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver> </application> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> </manifest> 

Я закрыл AVD, а затем нажал кнопку «запустить» в Eclipse, и Eclipse запустил новый AVD, но после загрузки системы я просто не вижу журнал в LogCat …

Solutions Collecting From Web of "Как поймать систему трансляции BOOT_COMPLETED, моя программа просто не работает?"

Хорошо, я попробовал это, и это работает для меня,

 public class Autostart extends BroadcastReceiver { public void onReceive(Context arg0, Intent arg1) { Log.i("Autostart", "**********started************"); } } 

Файл AndroidManifest

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="pack.saltriver" android:versionCode="1" android:versionName="1.0" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <receiver android:name=".Autostart"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> </application> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission> </manifest> 

Вы должны добавить

 android:enabled="true" android:exported="true" 

А ТАКЖЕ

Убедитесь, что приложение не установлено на SD-карте. Установленные там приложения IIRC не получают BOOT_COMPLETED .

Другое дело, что устройства с включенной BOOT_COMPLETED «Быстрая загрузка» (например, несколько устройств HTC) (иногда?) Не отправляют BOOT_COMPLETED .

Начиная с Android 3.1+ есть еще несколько странностей относительно BOOT_COMPLETED касающихся «самого первого запуска приложения» – см. http://commonsware.com/blog/2011/07/13/boot-completed-regression-confirmed.html

Рабочий пример проекта с источником см. https://github.com/commonsguy/cw-advandroid/tree/master/SystemEvents/OnBoot

От http://arthurfmay.blogspot.com/2011/06/broadcastreceiver-bootcompleted-and.html

Поэтому вместо Eclipse я просто зашел в Android SDK и AVD Manager (в меню Window) и начал с него эмулятор. Я сделал это, конечно, после загрузки приложения в эмулятор. Я запускаю эмулятор, и мой BroadcastReceiver при загрузке работает нормально. Не нужно было запускать эмулятор в командной строке.

Другой рабочий образец можно найти здесь .