Android 接收不到开机广播,接收不到adb发送的广播

NullPointerK 2020-06-23 09:29:10
最近在弄一个开机自启动的需求,已经按照一般方法静态注册,写一个接受广播,也将应用安装到系统目录 /system/app,但是就是接收不到广播,也接收不到adb自己发送的广播。哪位大佬能帮帮忙

public class UpdateReceiver extends BroadcastReceiver {
public static final String TAG = UpdateReceiver.class.getSimpleName();

@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
String packageName = intent.getDataString().substring(8);
Log.i(TAG,"BootReceiver onReceive():接收到Intent.getAction() = "+intent.getAction()+" , 包名 = "+intent.getDataString());

/**
* 接收安装广播
* android.intent.action.PACKAGE_ADDED
* */
if (action.equals(Intent.ACTION_PACKAGE_ADDED)) {
Log.i(TAG,"BootReceiver onReceive():安装了:" + packageName + "包名的程序");

}

/**
* 接收卸载广播
* android.intent.action.PACKAGE_REMOVED
* */
if (action.equals(Intent.ACTION_PACKAGE_REMOVED)) {
Log.i(TAG,"接收卸载广播");

}

/**
* 接收更新广播
* android.intent.action.PACKAGE_REPLACED
* */
if(action.equals(Intent.ACTION_PACKAGE_REPLACED)){
Log.i(TAG,"BootReceiver onReceive():更新了:" + packageName + "包名的程序,context.getPackageName()="+context.getPackageName());
Intent intent2 = new Intent(context, SettingActivity.class);
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent2);

}
/**
* 接收重启广播
* android.intent.action.PACKAGE_REPLACED
* */
if(action.equals(Intent.ACTION_PACKAGE_RESTARTED)){
Log.i(TAG,"BootReceiver onReceive():重启了:" + packageName + "包名的程序");
Intent intent2 = new Intent(context, SettingActivity.class);
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent2);
}

/**
* 接收开机广播
* android.intent.action.BOOT_COMPLETED
* */
if(action.equals(Intent.ACTION_BOOT_COMPLETED)){
Log.i(TAG,"BootReceiver onReceive():仪器开机,开启了:" + packageName + "包名的程序");
Intent intentMainActivity = new Intent(context, SettingActivity.class);
intentMainActivity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intentMainActivity);
}

}
}


<receiver
android:name=".receiver.UpdateReceiver"
android:label="@string/app_name"> <!-- app open/delete/upgrade/completed receiver -->
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" /> <!-- add -->
<action android:name="android.intent.action.PACKAGE_REPLACED" /> <!-- update -->
<action android:name="android.intent.action.PACKAGE_REMOVED" /> <!-- delete -->
<action android:name="android.intent.action.PACKAGE_RESTARTED" /> <!-- restart -->
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
...全文
15269 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
JMSissi 2020-06-23
  • 打赏
  • 举报
回复

/**
 * 自启动广播
 */
public class SelfstartingReceiver extends BroadcastReceiver {

    public SelfstartingReceiver() {
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
            Intent i = new Intent(context, MainActivity.class);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        }
    }
}
AndroidManifest中注册下
 <receiver
            android:name=".Recevier.SelfstartingReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter android:priority="1000">
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧