Приемник вещания работает на эмуляторе, но не на реальном устройстве (Android Oreo) - PullRequest
0 голосов
/ 16 марта 2020

Приемник вещания, он отлично работает, когда я убиваю свое приложение, работает в фоновом режиме. но я установил свое реальное устройство, это не когда я убиваю приложение.

> Java Code

    public class BackgroundService extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context,"Send Message",Toast.LENGTH_LONG).show();
    }
}

> MainActivity
     BackgroundService backgroundService;
      @Override
    protected void onStart() {
        super.onStart();
        IntentFilter intentFilter = new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION);
        registerReceiver(backgroundService,intentFilter);
    }


> Manifests 



<uses-permission android:name="android.permission.RECEIVE_SMS"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.SEND_SMS"/>
    <uses-permission android:name="android.permission.READ_SMS"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>

    <receiver android:name=".BackgroundService">
        <intent-filter android:priority="999">
            <action android:name="android.intent.action.SCREEN_ON"/>
            <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
        </intent-filter>
    </receiver>

1 Ответ

1 голос
/ 16 марта 2020

Начиная с android 8 и далее, если у вас есть какая-либо неявная трансляция, вы должны зарегистрировать ее в своей деятельности, не включенной в манифест В вашем случае

<action android:name="android.intent.action.SCREEN_ON"/> <action android:name="android.provider.Telephony.SMS_RECEIVED"/>

представляется неявной вещания. Попробуйте зарегистрировать их в своем классе активности, используя intentFilter.addAction (Ваше действие)

Также отмените регистрацию получателя в onStop , вызвав unregisterReceiver (экземпляр получателя)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...