InstallResultReceiver.java 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package com.emato.ich.update;
  2. import android.app.AlarmManager;
  3. import android.app.PendingIntent;
  4. import android.content.BroadcastReceiver;
  5. import android.content.Context;
  6. import android.content.Intent;
  7. import android.content.pm.PackageInstaller;
  8. import android.os.Build;
  9. import com.emato.ich.utils.Log;
  10. public class InstallResultReceiver extends BroadcastReceiver {
  11. private static final String TAG = InstallResultReceiver.class.getName();
  12. @Override
  13. public void onReceive(Context context, Intent intent) {
  14. Log.i(TAG, "onReceive: "+intent.getIntExtra(PackageInstaller.EXTRA_STATUS,PackageInstaller.STATUS_FAILURE));
  15. Intent intent1 = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
  16. PendingIntent restartIntent = PendingIntent.getActivity(context, 0, intent1, PendingIntent.FLAG_ONE_SHOT);
  17. AlarmManager mgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
  18. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {// 6.0及以上
  19. mgr.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10000, restartIntent);
  20. } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {// 4.4及以上
  21. mgr.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10000, restartIntent);
  22. }
  23. /*if (intent != null) {
  24. final int status = intent.getIntExtra(PackageInstaller.EXTRA_STATUS,PackageInstaller.STATUS_FAILURE);
  25. if (status == PackageInstaller.STATUS_SUCCESS) {
  26. // TODO 安装成功 启动应用
  27. PackageManagerCompat.restartApp(context);
  28. } else {
  29. // 失败
  30. Log.e(TAG, "onReceive: =================================================>自动安装失败! ");
  31. }
  32. } else {
  33. Log.i(TAG, "onReceive: ===================================================>启动失败! ");
  34. }*/
  35. }
  36. }