80,351
社区成员
发帖
与我相关
我的任务
分享
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>
/**
* 自启动广播
*/
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>