APP安装、升级、卸载消息处理

serial
BlueMatthew 2 years ago
parent 442b1e4da7
commit 976215c323

@ -72,6 +72,11 @@
android:supportsRtl="true"
android:theme="@style/Theme.MicroPhoto"
tools:targetApi="28">
<receiver
android:name=".UpdateReceiver"
android:enabled="true"
android:exported="true"></receiver>
<activity
android:name=".ChannelActivity"
android:exported="false" />
@ -91,11 +96,11 @@
<category android:name="android.intent.category.default" />
</intent-filter>
</service>
<service android:name=".FloatingWindow"></service>
<service android:name=".FloatingWindow" />
<receiver
android:name=".MicroPhotoService$AlarmReceiver"
android:exported="true"></receiver>
android:exported="true" />
<receiver
android:name=".BootBroadcastReceiver"
android:enabled="true"
@ -108,7 +113,7 @@
<category android:name="android.intent.category.default" />
</intent-filter>
</receiver>
<receiver android:name=".NetworkChangedReceiver"></receiver>
<receiver android:name=".NetworkChangedReceiver" />
<receiver
android:name=".ScreenActionReceiver"
android:exported="true">
@ -125,6 +130,17 @@
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<receiver
android:name=".UpdateReceiver"
android:enabled="true">
<intent-filter android:priority="90000">
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
<activity
android:name=".MainActivity"

@ -0,0 +1,39 @@
package com.xypower.mpapp;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import com.dev.devapi.api.SysApi;
public class UpdateReceiver extends BroadcastReceiver {
private static final String TAG = UpdateReceiver.class.getSimpleName();
private static final String APP_PACKAGE_MPMASTER = "com.xypower.mpmaster";
@Override
public void onReceive(Context context, Intent intent) {
String packageName = intent.getDataString();
packageChanged(context, intent.getAction(), packageName, APP_PACKAGE_MPMASTER);
packageChanged(context, intent.getAction(), packageName, context.getPackageName());
}
private void packageChanged(Context context, String action, String packageName, String targetPackageName) {
if (action.equals(Intent.ACTION_PACKAGE_REPLACED)) { // Upgrade Broadcast
// Logger.e(TAG, "onReceive:升级了一个安装包,重新启动此程序");
if (packageName.equals("package:" + targetPackageName)) {
SysApi.enableApp(context, targetPackageName);
}
} else if (action.equals(Intent.ACTION_PACKAGE_ADDED)) {// Install broadcast
// Logger.e(TAG, "onReceive:安装了" + packageName);
if (packageName.equals("package:" + targetPackageName)) {
/*SystemUtil.reBootDevice();*/
SysApi.enableApp(context, targetPackageName);
}
} else if (action.equals(Intent.ACTION_PACKAGE_REMOVED)) { // Uninstall
// Logger.e(TAG, "onReceive:uninstall" + packageName);
}
}
}
Loading…
Cancel
Save