SMS BroadcastReceiver не срабатывает, если телефон не использовался некоторое время? - PullRequest
0 голосов
/ 12 октября 2018

У меня есть приложение, которое регистрирует BroadcastReceiver в манифесте

    <receiver
        android:name=".smsprocessing.SmsBroadcastReceiver"
        android:exported="true"
        android:permission="android.permission.BROADCAST_SMS">
        <intent-filter android:priority="999">
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            <action android:name="android.provider.Telephony.SMS_DELIVER" />
            <action android:name="android.provider.Telephony.SMS_DELIVER_ACTION" />
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>

Оно всегда работало идеально, когда я тестировал его, но сегодня я пытался отправить SMS на телефон сприложение, которое я не трогал несколько часов.Приложение хорошо работало на этом телефоне до тестирования, но я всегда тестировал его с включенным дисплеем или в течение нескольких минут после блокировки экрана.

Кажется, мой BroadcastReceiver не был запущен сегодня, когда я несколько часов не пользовался телефоном.SMS было получено и активировало стандартное приложение Messaging, но мой BroadcastReceiver не был запущен (или, по крайней мере, служба переднего плана, с которой я запускаю onReceive(), не была запущена).

Телефон, о котором идет речь,Motorola Moto G под управлением Android 4.4.4.

EDIT

Когда я подключаю телефон через USB через несколько минут после того, как он должен был активировать BroadcastReceiver, я вижу только два журнала, связанные с моим приложением:

10-12 22:33:28.438 1039-1053/? I/ActivityManager: Start proc com.example.myapp for broadcast com.example.myapp/com.example.myapp.smsprocessing.SmsBroadcastReceiver: pid=3554 uid=10230 gids={50230, 3003}
10-12 22:33:28.961 1039-4323/? I/ActivityManager: Process com.example.myapp (pid 3554) has died.

Вот полный журнал с момента, когда (я думаю) было получено SMS (я поставил две строки с ###):

10-12 22:33:28.235 1039-1186/? I/PackageManager: Adding preferred activity ComponentInfo{com.android.mms/com.android.mms.ui.ComposeMessageActivity} for user 0 :
10-12 22:33:28.271 1039-4323/? I/PackageManager: Adding preferred activity ComponentInfo{com.android.mms/com.android.mms.ui.ComposeMessageActivity} for user 0 :
10-12 22:33:28.291 1039-1401/? I/PackageManager: Adding preferred activity ComponentInfo{com.android.mms/com.android.mms.ui.ComposeMessageActivity} for user 0 :
10-12 22:33:28.312 1039-1100/? I/PackageManager: Adding preferred activity ComponentInfo{com.android.mms/com.android.mms.ui.ComposeMessageActivity} for user 0 :
10-12 22:33:28.345 1039-1053/? I/ActivityManager: Start proc com.android.mms for broadcast com.android.mms/.transaction.PrivilegedSmsReceiver: pid=3524 uid=10030 gids={50030, 3003, 1028, 1015}10-12 22:33:28.345 1039-1053/? I/ActivityManager: Start proc com.android.mms for broadcast com.android.mms/.transaction.PrivilegedSmsReceiver: pid=3524 uid=10030 gids={50030, 3003, 1028, 1015}
### 10-12 22:33:28.438 1039-1053/? I/ActivityManager: Start proc com.example.myapp for broadcast com.example.myapp/com.example.myapp.smsprocessing.SmsBroadcastReceiver: pid=3554 uid=10230 gids={50230, 3003}
10-12 22:33:28.635 1039-1093/? D/WifiService: Client connection lost with reason: 4
10-12 22:33:28.644 1039-1050/? I/ActivityManager: Start proc android.process.acore for content provider com.android.providers.contacts/.ContactsProvider2: pid=3571 uid=10010 gids={50010, 3003, 1028, 1015, 1023}
10-12 22:33:28.645 1039-4321/? I/ActivityManager: Process com.google.android.gms (pid 2593) has died.
10-12 22:33:28.648 1039-4321/? W/ActivityManager: Service ServiceRecord{43d5d0e0 u0 com.google.android.gms/.chimera.GmsApiService} in process ProcessRecord{425f9028 2593:com.google.android.gms/u0a22} not same as in map: null
10-12 22:33:28.649 1039-4321/? W/ActivityManager: Scheduling restart of crashed service com.google.android.gms/.chimera.GmsIntentOperationService in 26259ms
    Scheduling restart of crashed service com.google.android.gms/.checkin.CheckinService in 26259ms
    Service ServiceRecord{43116f88 u0 com.google.android.gms/.chimera.GmsBoundBrokerService} in process ProcessRecord{425f9028 2593:com.google.android.gms/u0a22} not same as in map: null
10-12 22:33:28.848 1039-1290/? I/ActivityManager: Start proc com.google.android.gms for service com.google.android.gms/.ads.identifier.service.AdvertisingIdService: pid=3618 uid=10022 gids={50022, 3003, 1007, 1028, 1015, 3002, 3001, 3007, 2001, 3006}
### 10-12 22:33:28.961 1039-4323/? I/ActivityManager: Process com.example.myapp (pid 3554) has died.
10-12 22:33:29.279 1039-1313/? I/ActivityManager: Process com.google.android.apps.photos (pid 3476) has died.
10-12 22:33:29.998 1039-1049/? I/ActivityManager: Process com.google.android.gms.unstable (pid 3285) has died.
10-12 22:33:30.227 1039-1093/? D/WifiService: New client listening to asynchronous messages
10-12 22:33:30.422 263-349/? W/Vold: Returning OperationFailed - no handler for errno 30
10-12 22:33:30.425 263-349/? W/Vold: Returning OperationFailed - no handler for errno 30
10-12 22:33:30.483 1039-1100/? I/ActivityManager: Start proc com.google.android.gms.unstable for service com.google.android.gms/.droidguard.DroidGuardService: pid=3693 uid=10022 gids={50022, 3003, 1007, 1028, 1015, 3002, 3001, 3007, 2001, 3006}
10-12 22:33:30.847 1039-4323/? I/ActivityManager: Process android.process.acore (pid 3571) has died.
10-12 22:33:31.308 1039-3556/? I/ActivityManager: Process com.android.mms (pid 3524) has died.
...