Я пытаюсь отправить намерение из несистемного приложения, используя следующую функцию.
public static void sendIntent() {
if (null != _context) {
Intent intent = new Intent("com.test.testApp.testIntent");
intent.setPackage(_context.getPackageName());
_context.sendBroadcast(intent);
}
}
Но я всегда вижу сообщение об ошибке от ActivityManager, как показано ниже. То же самое намерение вещания (приложение) отлично работает в andorid 6.0, но выдает ошибку в android 7.1.1. Мне нужно что-то изменить для Android 7.1.1?
4-10 15:06:34.423 1615 2921 E ActivityManager: Отправка незащищенной широковещательной рассылки com.test.testApp.testIntent из системы 2886:com.test.testApp/u0a117 pkg com.test.testApp
В ListFragment я регистрирую получателя следующим образом:
@Override
public void onStart() {
super.onStart();
getActivity().registerReceiver((receiver),
new IntentFilter(com.test.testApp.testIntent));
TextView textDownload = (TextView) getActivity().findViewById(R.id.output);
textDownload.setVisibility(android.view.View.INVISIBLE);
}
"com.test.testApp.testIntent"
. - person CommonsWare   schedule 11.04.2017:: shrug ::
Попробуйте изменить имя, особенно битSTATUS_CHANGE
, на случай, если возникнет какая-то странная ошибка, когда Android проверяет строки действий, чтобы увидеть, что можно, а что нельзя отправлять. Также обратите внимание, что неявные трансляции, подобные этой, не работают на Android O, как только вашtargetSdkVersion
поднимется доO
или выше (или во что-то еще, во что превратитсяO
после того, как Android O выйдет в окончательной форме). Возможно, вы захотите рассмотреть возможность использования чего-то другого. - person CommonsWare   schedule 11.04.2017android.uid.system
— это если ваше приложение подписано тем же ключом подписи, который подписывает остальные предустановленные приложения, и для этого вам нужно создать собственное ПЗУ. - person CommonsWare   schedule 12.04.2017sendBroadcast(new android.content.Intent("com.testApp.savi.STATUS_CHANGE"));
отлично работает на Android 7.1, когда я помещаю этот код вonCreate()
действия. Я не получаю ошибку, которую вы привели. - person CommonsWare   schedule 12.04.2017IntentService
. Если у вас есть возможность создать воспроизводимый тестовый пример, рассмотрите возможность подать заявку. - person CommonsWare   schedule 12.04.2017