InstallResultReceiver.java 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. /**
  11. * 接收安装成功后的广播接收器
  12. */
  13. public class InstallResultReceiver extends BroadcastReceiver {
  14. private static final String TAG = InstallResultReceiver.class.getName();
  15. @Override
  16. public void onReceive(Context context, Intent intent) {
  17. Log.i(TAG, "onReceive: "+intent.getIntExtra(PackageInstaller.EXTRA_STATUS,PackageInstaller.STATUS_FAILURE));
  18. Intent intent1 = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
  19. PendingIntent restartIntent = PendingIntent.getActivity(context, 0, intent1, PendingIntent.FLAG_ONE_SHOT);
  20. AlarmManager mgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
  21. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {// 6.0及以上
  22. mgr.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10000, restartIntent);
  23. } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {// 4.4及以上
  24. mgr.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10000, restartIntent);
  25. }
  26. /*if (intent != null) {
  27. final int status = intent.getIntExtra(PackageInstaller.EXTRA_STATUS,PackageInstaller.STATUS_FAILURE);
  28. if (status == PackageInstaller.STATUS_SUCCESS) {
  29. // TODO 安装成功 启动应用
  30. PackageManagerCompat.restartApp(context);
  31. } else {
  32. // 失败
  33. Log.e(TAG, "onReceive: =================================================>自动安装失败! ");
  34. }
  35. } else {
  36. Log.i(TAG, "onReceive: ===================================================>启动失败! ");
  37. }*/
  38. }
  39. }