BOOT_COMPLETED从未收到过

Die*_*ego 2 boot android broadcastreceiver android-intent

每个设备都发送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>
Run Code Online (Sandbox Code Playgroud)

创建了以下类(接收者):

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);
        } 
    }
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?谢谢!

kod*_*hpa 5

  1. 添加完整路径,然后在接收器中添加权限.

     <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>
    
    Run Code Online (Sandbox Code Playgroud)