Активность не может начаться с приемника вещания - PullRequest
0 голосов
/ 04 октября 2019

Запустить активность из Broadcast приемник не работает на Android 9, но работает ниже Android 9, работает нормально, я много искал по этому поводу, но не смог найти подходящего решения. Кто-нибудь сталкивается с такой же проблемой, вот мой код.

public void onReceive(final Context context, Intent intent) {

    try {
        this.tm = (TelephonyManager) context.getSystemService("phone");
        this.tm.listen(new PhoneStateListener() {
            public void onCallStateChanged(int state, final String num) {
                if (state == 1 && Receiver.this.preferences.getInt("start", 0) == 1) {
                    try {
                        new Handler().postDelayed(new Runnable() {
                            public void run() {
                                Receiver.this.i = new Intent(context, MainActivity.class);

                                context.startActivity(Receiver.this.i);
                            }
                        }, 300);
                    } catch (Exception e) {

                    }
                } 

Ответы [ 3 ]

2 голосов
/ 04 октября 2019

вам нужно добавить флаг к намерению

i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

, прежде чем позвонить context.startActivity(i);

0 голосов
/ 04 октября 2019

Ниже я привожу пример для запуска активности с приемника вещания, но этот для запуска MainActivity после перезагрузки устройства.

public class StartReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action= intent.getAction();
        if( action.equals("android.intent.action.BOOT_COMPLETED") ){

            Intent i= new Intent(context, MainActivity.class);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

            context.startActivity(i);
        }
    }

}
0 голосов
/ 04 октября 2019

Я вижу, что вы слушаете onCallStateChanged. Но я думаю, что вам нужно спросить разрешение на это на Android 9: https://stackoverflow.com/a/52025013/2212770

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