在Google之后,我决定这样做:
<receiver android:name=".UpdateReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_MY_PACKAGE_REPLACED" />
</intent-filter>
</receiver>
和:
public class UpdateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.intent.action.ACTION_MY_PACKAGE_REPLACED")){
Intent intent = new Intent(context, StartActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
}
}
由于设备已植根,因此请使用以下代码进行更新:
command = "pm install -r " + "/mnt/sdcard/Download/xxx.apk";
Process proc = Runtime.getRuntime().exec(new String[]{"su", "-c", command});
proc.waitFor();
更新成功,但未触发UpdateReceiver,为什么?
我的设备操作系统版本为4.4.4。然后从我自己的服务器更新应用。
答案 0 :(得分:0)
不是android.intent.action.ACTION_MY_PACKAGE_REPLACED
。
是android.intent.action.MY_PACKAGE_REPLACED
<receiver android:name=".UpdateReceiver">
<intent-filter>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
</intent-filter>
</receiver>