每个设备都发送BOOT_COMPLETED吗?我想在Boot Completed上启动一个Activity。
我在Manifest中添加了以下内容:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<receiver android:name=".BootFinished">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
创建了以下类(接收者):
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.widget.Toast;
public class BootFinished extends BroadcastReceiver {
@Override
public void onReceive(Context mContext, Intent intent) {
if(intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
//do something like start an activity or service
}
try {
PackageManager pm = mContext.getPackageManager();
Intent launch = pm.getLaunchIntentForPackage("com.example.afterboot");
mContext.startActivity(launch);
} catch (Exception e) {
Toast.makeText(mContext, e.getMessage(), Toast.LENGTH_SHORT);
}
}
}
我错过了什么吗?谢谢!
答案 0 :(得分:5)
添加完整路径,然后在接收器中添加权限。
<receiver android:name="com.example.BootFinished"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
答案 1 :(得分:0)
作为起点,尝试将接收器的完整路径放入清单中。
答案 2 :(得分:0)
广播接收器事件可能失败的可能原因:
未在AndroidManifest.xml中声明接收器 在Manifest文件中声明接收者:
清单中的接收器xml拼写错误 Android系统区分大小写。因此,请检查AndroidMainfest.xml中的拼写和路径是否正确
AVD长时间运行 重置您的avd /设备
4.如果你的应用程序被移动到sdcard.Say你注册了android.intent.action.BOOT_COMPLETED,甚至在mediascanner扫描sdcard之前就会触发启动事件。
运行android的所有设备发送BOOT_COMPLETE:P 再次检查并尝试:) 一切顺利:)