以下是我用于在设备打开时启动我的应用程序的代码。
public class BootReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Log.i("BootReceiver","intent received");
Intent myIntent = new Intent(context, ACT_Home.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(myIntent);
}
}
并在 list 中(作为 <Application>
子级):
<receiver android:name="host.alarmmanager.BootReceiver">
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
Manifest 中的权限如下:
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.VIBRATE" />
<uses-feature android:name="android.hardware.camera"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
这在 Android 3.2.2 上工作正常,但如果我在 Android 4.0.3 上尝试相同的应用程序,广播接收器不会收到任何东西。
也是第一行里面的onReceive
方法未执行。
为什么会这样?
最佳答案
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
你应该在 android manifest 中使用它
关于android - 开机启动应用程序完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18868432/