diff --git a/packages/apps/PackageInstaller/src/com/android/packageinstaller/InstallAppProgress.java b/packages/apps/PackageInstaller/src/com/android/packageinstaller/InstallApp
index 49d91cf..bbc78f5 100755
--- a/packages/apps/PackageInstaller/src/com/android/packageinstaller/InstallAppProgress.java
+++ b/packages/apps/PackageInstaller/src/com/android/packageinstaller/InstallAppProgress.java
@@ -58,6 +58,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
+import android.content.ComponentName;
/**
* This activity corresponds to a download progress screen that is displayed
@@ -101,6 +102,29 @@ public class InstallAppProgress extends Activity implements View.OnClickListener
clearCachedApkIfNeededAndFinish();
return;
}
+ if (getIntent().getBooleanExtra("AutoInstall", false) && msg.arg1 == PackageManager.INSTALL_SUCCEEDED) {
+ Intent mIntent = getPackageManager().getLaunchIntentForPackage(
+ mAppInfo.packageName);
+ boolean enabled = false;
+ if(mIntent != null) {
+ List<ResolveInfo> list = getPackageManager().
+ queryIntentActivities(mIntent, 0);
+ if (list != null && list.size() > 0) {
+ enabled = true;
+ }
+ }
+ if (enabled && "com.antutu.benchmark.full".equals(mAppInfo.packageName)) {//如果自动安装的apk是antutufull(3dTest),则>安装完成后自动启动测试
+ Intent intent = new Intent("com.antutu.benchmark.full.MAROONED_RUN");
+ intent.setFlags(335544320);
+ intent.setComponent(new ComponentName("com.antutu.benchmark.full", "com.antutu.benchmark.full.UnityPlayerActivity"));
+ intent.putExtra("uid", "8939");
+ startActivity(intent);
+ //startActivity(mIntent);
+ }
+ finish();
+ return;
+ }
+
// Update the status text
mProgressBar.setVisibility(View.GONE);
// Show the ok button
diff --git a/packages/apps/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java b/packages/apps/PackageInstaller/src/com/android/packageinstaller/Pack
index de68582..b85b767 100644
--- a/packages/apps/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java
+++ b/packages/apps/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java
@@ -120,6 +120,35 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
private static final int DLG_NOT_SUPPORTED_ON_WEAR = DLG_BASE + 7;
private void startInstallConfirm() {
+ if(mAutoInstall)
+ {
+ Intent newIntent = new Intent();
+ newIntent.putExtra(PackageUtil.INTENT_ATTR_APPLICATION_INFO,
+ mPkgInfo.applicationInfo);
+ newIntent.setData(mPackageURI);
+ newIntent.setClass(this, InstallAppProgress.class);
+ String installerPackageName = getIntent().getStringExtra(Intent.EXTRA_INSTALLER_PACKAGE_NAME);
+ if (mOriginatingURI != null) {
+ newIntent.putExtra(Intent.EXTRA_ORIGINATING_URI, mOriginatingURI);
+ }
+ if (mReferrerURI != null) {
+ newIntent.putExtra(Intent.EXTRA_REFERRER, mReferrerURI);
+ }
+ if (mOriginatingUid != VerificationParams.NO_UID) {
+ newIntent.putExtra(Intent.EXTRA_ORIGINATING_UID, mOriginatingUid);
+ }
+ if (installerPackageName != null) {
+ newIntent.putExtra(Intent.EXTRA_INSTALLER_PACKAGE_NAME,installerPackageName);
+ }
+ if (getIntent().getBooleanExtra(Intent.EXTRA_RETURN_RESULT, false)) {
+ newIntent.putExtra(Intent.EXTRA_RETURN_RESULT, true);
+ newIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
+ }
+ newIntent.putExtra("AutoInstall", true);
+ if(localLOGV) Log.i(TAG, "downloaded app uri="+mPackageURI);
+ startActivity(newIntent);
+ finish();
+ }else{
((TextView) findViewById(R.id.install_confirm_question))
.setText(R.string.install_confirm_question);
findViewById(R.id.spacer).setVisibility(View.GONE);
@@ -217,6 +246,7 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
});
}
}
+}
private void showDialogInner(int id) {
// TODO better fix for this? Remove dialog so that it gets created again
@@ -402,6 +432,7 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
? RESULT_OK : RESULT_FIRST_USER, result);
}
+ boolean mAutoInstall = false;
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
@@ -433,6 +464,8 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
packageUri = intent.getData();
mOriginatingURI = intent.getParcelableExtra(Intent.EXTRA_ORIGINATING_URI);
mReferrerURI = intent.getParcelableExtra(Intent.EXTRA_REFERRER);
+ mAutoInstall = intent.getBooleanExtra("AutoInstall", false);
+ Log.v(TAG,"mAutoInstall:"+ mAutoInstall);
}
// if there's nothing to do, quietly slip into the ether
Android修改PackageInstaller自动安装指定应用
猜你喜欢
转载自blog.csdn.net/zhoumushui/article/details/101428008
今日推荐
周排行