у меня сгнил Nexus6
С Android6
. Я создал системное приложение (находится в system/app
), я хочу выполнить простой код при получении ACTION_BOOT_COMPLETED, но по какой-то причине код не выполняется..
Манифест:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.atest">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<receiver
android:name="com.atest.testReceiver">
<intent-filter android:enabled="true">
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Получатель:
public class testReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
// Some simple code
}
}
}
Какие-либо предложения?
EDIT: При выполнении с adb следующее:
am broadcast -a android.intent.action.BOOT_COMPLETED -p com.atest
Код выполняется, как и ожидалось, но при перезагрузке/загрузке все еще безуспешно.
/system/app
? Это ваша большая подсказка, ваше приложение не имеет привилегий системного уровня. Вместо этого установите его как обычный пользователь. - person t0mm13b   schedule 02.05.2016/system/app
, который является системными приложениями, такими как карты Google и т. Д. Все системные приложения имеют системные привилегии и подписаны производителем ПЗУ. - person t0mm13b   schedule 02.05.2016