我有一个广播接收器扩展名为Bootup的类,我希望在关闭后设备首次启动时调用它。我已将其实现到我的其他应用程序中,因此我将该代码迁移到此应用程序并更改了所有必要的详细信息。
这是在清单XML文件中的应用程序标记下注册的方式:
<receiver android:enabled="true" android:name=".reveivers.Bootup"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
这就是班级本身:
public class Bootup extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//Received when the phone boots up
//Do some stuff
//Test notification to check if it worked. Doesn't show, but the method is valid code.
playNotification(context, "Active English", "Bootup received!");
//More code, then this bit to check if it works again
Log.d("test", milliseconds + " _ " + System.currentTimeMillis());
//Yet more code
}
private void playNotification(Context context, String name, String description){
long[] vibrate = new long[2];
vibrate[0] = 500;
vibrate[1] = 1000;
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setContentText(description)
.setSmallIcon(R.drawable.notificationicon)
.setLights(Color.GREEN, 500, 2000)
.setAutoCancel(true)
.setVibrate(vibrate)
.setContentTitle(name);
NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(1, builder.build());
}
}
我现在告诉你,所有代码都有效。但无论出于何种原因,屏幕上都不会显示logcat消息和通知。 playNotification方法在其他应用程序中运行良好,因此不是问题。
这里有什么想法吗?
编辑:添加了通知方法的代码,以防万一对任何人都有用。
答案 0 :(得分:0)
尝试添加RECEIVE_BOOT_COMPLETED
权限。在应用程序标记之外的清单中添加以下行:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>