List of usage examples for android.content Intent ACTION_INSTALL_PACKAGE
String ACTION_INSTALL_PACKAGE
To view the source code for android.content Intent ACTION_INSTALL_PACKAGE.
Click Source Link
From source file:Main.java
public static void installApk(Context context, File filename) { Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setData(Uri.fromFile(filename)); context.startActivity(intent);/*from w w w .ja v a 2 s.c o m*/ }
From source file:Main.java
/** * Get the intent used to open installation U.I. * * @param fileUri downloaded file URI from the download manager. * @return intent to open installation U.I. *//*from w ww.ja va2 s .c o m*/ @NonNull static Intent getInstallIntent(Uri fileUri) { Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE); intent.setData(fileUri); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); return intent; }
From source file:org.fdroid.fdroid.installer.DefaultInstallerActivity.java
@SuppressLint("InlinedApi") private void installPackage(Uri uri) { if (uri == null) { throw new RuntimeException("Set the data uri to point to an apk location!"); }/*from w w w .j a v a 2s.co m*/ // https://code.google.com/p/android/issues/detail?id=205827 if ((Build.VERSION.SDK_INT < 24) && (!uri.getScheme().equals("file"))) { throw new RuntimeException("PackageInstaller < Android N only supports file scheme!"); } if ((Build.VERSION.SDK_INT >= 24) && (!uri.getScheme().equals("content"))) { throw new RuntimeException("PackageInstaller >= Android N only supports content scheme!"); } Intent intent = new Intent(); // Note regarding EXTRA_NOT_UNKNOWN_SOURCE: // works only when being installed as system-app // https://code.google.com/p/android/issues/detail?id=42253 if (Build.VERSION.SDK_INT < 14) { intent.setAction(Intent.ACTION_VIEW); intent.setDataAndType(uri, "application/vnd.android.package-archive"); } else if (Build.VERSION.SDK_INT < 16) { intent.setAction(Intent.ACTION_INSTALL_PACKAGE); intent.setData(uri); intent.putExtra(Intent.EXTRA_RETURN_RESULT, true); intent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true); intent.putExtra(Intent.EXTRA_ALLOW_REPLACE, true); } else if (Build.VERSION.SDK_INT < 24) { intent.setAction(Intent.ACTION_INSTALL_PACKAGE); intent.setData(uri); intent.putExtra(Intent.EXTRA_RETURN_RESULT, true); intent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true); } else { // Android N intent.setAction(Intent.ACTION_INSTALL_PACKAGE); intent.setData(uri); // grant READ permission for this content Uri intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.putExtra(Intent.EXTRA_RETURN_RESULT, true); intent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true); } try { startActivityForResult(intent, REQUEST_CODE_INSTALL); } catch (ActivityNotFoundException e) { Log.e(TAG, "ActivityNotFoundException", e); installer.sendBroadcastInstall(downloadUri, Installer.ACTION_INSTALL_INTERRUPTED, "This Android rom does not support ACTION_INSTALL_PACKAGE!"); finish(); } installer.sendBroadcastInstall(downloadUri, Installer.ACTION_INSTALL_STARTED); }
From source file:com.theaetetuslabs.android_apkmaker.InstallActivity.java
private Intent getInstallIntent() { Intent promptInstall = new Intent(Intent.ACTION_INSTALL_PACKAGE); promptInstall.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); promptInstall.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true); promptInstall.putExtra(Intent.EXTRA_RETURN_RESULT, true); return promptInstall; }
From source file:com.android.cts.verifier.managedprovisioning.ByodHelperActivity.java
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState != null) { Log.w(TAG, "Restored state"); mOriginalSettings = savedInstanceState.getBundle(ORIGINAL_SETTINGS_NAME); } else {/*from w w w.j a v a2 s.com*/ mOriginalSettings = new Bundle(); } mAdminReceiverComponent = new ComponentName(this, DeviceAdminTestReceiver.class.getName()); mDevicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); Intent intent = getIntent(); String action = intent.getAction(); Log.d(TAG, "ByodHelperActivity.onCreate: " + action); // we are explicitly started by {@link DeviceAdminTestReceiver} after a successful provisioning. if (action.equals(ACTION_PROFILE_PROVISIONED)) { // Jump back to CTS verifier with result. Intent response = new Intent(ACTION_PROFILE_OWNER_STATUS); response.putExtra(EXTRA_PROVISIONED, isProfileOwner()); startActivityInPrimary(response); // Queried by CtsVerifier in the primary side using startActivityForResult. } else if (action.equals(ACTION_QUERY_PROFILE_OWNER)) { Intent response = new Intent(); response.putExtra(EXTRA_PROVISIONED, isProfileOwner()); setResult(RESULT_OK, response); // Request to delete work profile. } else if (action.equals(ACTION_REMOVE_MANAGED_PROFILE)) { if (isProfileOwner()) { Log.d(TAG, "Clearing cross profile intents"); mDevicePolicyManager.clearCrossProfileIntentFilters(mAdminReceiverComponent); mDevicePolicyManager.wipeData(0); showToast(R.string.provisioning_byod_profile_deleted); } } else if (action.equals(ACTION_INSTALL_APK)) { boolean allowNonMarket = intent.getBooleanExtra(EXTRA_ALLOW_NON_MARKET_APPS, false); boolean wasAllowed = getAllowNonMarket(); // Update permission to install non-market apps setAllowNonMarket(allowNonMarket); mOriginalSettings.putBoolean(INSTALL_NON_MARKET_APPS, wasAllowed); // Request to install a non-market application- easiest way is to reinstall ourself final Intent installIntent = new Intent(Intent.ACTION_INSTALL_PACKAGE) .setData(Uri.parse("package:" + getPackageName())) .putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true).putExtra(Intent.EXTRA_RETURN_RESULT, true); startActivityForResult(installIntent, REQUEST_INSTALL_PACKAGE); // Not yet ready to finish- wait until the result comes back return; // Queried by CtsVerifier in the primary side using startActivityForResult. } else if (action.equals(ACTION_CHECK_INTENT_FILTERS)) { final boolean intentFiltersSetForManagedIntents = new IntentFiltersTestHelper(this) .checkCrossProfileIntentFilters(IntentFiltersTestHelper.FLAG_INTENTS_FROM_MANAGED); setResult(intentFiltersSetForManagedIntents ? RESULT_OK : RESULT_FAILED, null); } else if (action.equals(ACTION_CAPTURE_AND_CHECK_IMAGE)) { // We need the camera permission to send the image capture intent. grantCameraPermissionToSelf(); Intent captureImageIntent = getCaptureImageIntent(); Pair<File, Uri> pair = getTempUri("image.jpg"); mImageFile = pair.first; mImageUri = pair.second; captureImageIntent.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri); if (captureImageIntent.resolveActivity(getPackageManager()) != null) { startActivityForResult(captureImageIntent, REQUEST_IMAGE_CAPTURE); } else { Log.e(TAG, "Capture image intent could not be resolved in managed profile."); showToast(R.string.provisioning_byod_capture_media_error); finish(); } return; } else if (action.equals(ACTION_CAPTURE_AND_CHECK_VIDEO_WITH_EXTRA_OUTPUT) || action.equals(ACTION_CAPTURE_AND_CHECK_VIDEO_WITHOUT_EXTRA_OUTPUT)) { // We need the camera permission to send the video capture intent. grantCameraPermissionToSelf(); Intent captureVideoIntent = getCaptureVideoIntent(); int videoCaptureRequestId; if (action.equals(ACTION_CAPTURE_AND_CHECK_VIDEO_WITH_EXTRA_OUTPUT)) { mVideoUri = getTempUri("video.mp4").second; captureVideoIntent.putExtra(MediaStore.EXTRA_OUTPUT, mVideoUri); videoCaptureRequestId = REQUEST_VIDEO_CAPTURE_WITH_EXTRA_OUTPUT; } else { videoCaptureRequestId = REQUEST_VIDEO_CAPTURE_WITHOUT_EXTRA_OUTPUT; } if (captureVideoIntent.resolveActivity(getPackageManager()) != null) { startActivityForResult(captureVideoIntent, videoCaptureRequestId); } else { Log.e(TAG, "Capture video intent could not be resolved in managed profile."); showToast(R.string.provisioning_byod_capture_media_error); finish(); } return; } else if (action.equals(ACTION_CAPTURE_AND_CHECK_AUDIO)) { Intent captureAudioIntent = getCaptureAudioIntent(); if (captureAudioIntent.resolveActivity(getPackageManager()) != null) { startActivityForResult(captureAudioIntent, REQUEST_AUDIO_CAPTURE); } else { Log.e(TAG, "Capture audio intent could not be resolved in managed profile."); showToast(R.string.provisioning_byod_capture_media_error); finish(); } return; } else if (ACTION_KEYGUARD_DISABLED_FEATURES.equals(action)) { final int value = intent.getIntExtra(EXTRA_PARAMETER_1, DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_NONE); mDevicePolicyManager.setKeyguardDisabledFeatures(mAdminReceiverComponent, value); } else if (ACTION_LOCKNOW.equals(action)) { mDevicePolicyManager.lockNow(); setResult(RESULT_OK); } else if (action.equals(ACTION_TEST_NFC_BEAM)) { Intent testNfcBeamIntent = new Intent(this, NfcTestActivity.class); testNfcBeamIntent.putExtras(intent); startActivity(testNfcBeamIntent); finish(); return; } else if (action.equals(ACTION_TEST_CROSS_PROFILE_INTENTS_DIALOG)) { sendIntentInsideChooser(new Intent(CrossProfileTestActivity.ACTION_CROSS_PROFILE_TO_PERSONAL)); } else if (action.equals(ACTION_TEST_APP_LINKING_DIALOG)) { mDevicePolicyManager.addUserRestriction(DeviceAdminTestReceiver.getReceiverComponentName(), UserManager.ALLOW_PARENT_PROFILE_APP_LINKING); Intent toSend = new Intent(Intent.ACTION_VIEW); toSend.setData(Uri.parse("http://com.android.cts.verifier")); sendIntentInsideChooser(toSend); } else if (action.equals(ACTION_SET_USER_RESTRICTION)) { final String restriction = intent.getStringExtra(EXTRA_PARAMETER_1); if (restriction != null) { mDevicePolicyManager.addUserRestriction(DeviceAdminTestReceiver.getReceiverComponentName(), restriction); } } else if (action.equals(ACTION_CLEAR_USER_RESTRICTION)) { final String restriction = intent.getStringExtra(EXTRA_PARAMETER_1); if (restriction != null) { mDevicePolicyManager.clearUserRestriction(DeviceAdminTestReceiver.getReceiverComponentName(), restriction); } } else if (action.equals(ACTION_BYOD_SET_LOCATION_AND_CHECK_UPDATES)) { handleLocationAction(); return; } else if (action.equals(ACTION_NOTIFICATION)) { showNotification(Notification.VISIBILITY_PUBLIC); } else if (ACTION_NOTIFICATION_ON_LOCKSCREEN.equals(action)) { mDevicePolicyManager.lockNow(); showNotification(Notification.VISIBILITY_PRIVATE); } else if (ACTION_CLEAR_NOTIFICATION.equals(action)) { mNotificationManager.cancel(NOTIFICATION_ID); } else if (ACTION_TEST_SELECT_WORK_CHALLENGE.equals(action)) { mDevicePolicyManager.setOrganizationColor(mAdminReceiverComponent, Color.BLUE); mDevicePolicyManager.setOrganizationName(mAdminReceiverComponent, getResources().getString(R.string.provisioning_byod_confirm_work_credentials_header)); startActivity(new Intent(DevicePolicyManager.ACTION_SET_NEW_PASSWORD)); } else if (ACTION_LAUNCH_CONFIRM_WORK_CREDENTIALS.equals(action)) { KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); Intent launchIntent = keyguardManager.createConfirmDeviceCredentialIntent(null, null); startActivity(launchIntent); } else if (ACTION_SET_ORGANIZATION_INFO.equals(action)) { if (intent.hasExtra(OrganizationInfoTestActivity.EXTRA_ORGANIZATION_NAME)) { final String organizationName = intent .getStringExtra(OrganizationInfoTestActivity.EXTRA_ORGANIZATION_NAME); mDevicePolicyManager.setOrganizationName(mAdminReceiverComponent, organizationName); } final int organizationColor = intent.getIntExtra(OrganizationInfoTestActivity.EXTRA_ORGANIZATION_COLOR, mDevicePolicyManager.getOrganizationColor(mAdminReceiverComponent)); mDevicePolicyManager.setOrganizationColor(mAdminReceiverComponent, organizationColor); } else if (ACTION_TEST_PARENT_PROFILE_PASSWORD.equals(action)) { startActivity(new Intent(DevicePolicyManager.ACTION_SET_NEW_PARENT_PROFILE_PASSWORD)); } // This activity has no UI and is only used to respond to CtsVerifier in the primary side. finish(); }
From source file:com.amaze.filemanager.utils.files.FileUtils.java
/** * Install .apk file./*from w w w. ja v a 2 s . c om*/ * @param permissionsActivity needed to ask for {@link Manifest.permission#REQUEST_INSTALL_PACKAGES} permission */ public static void installApk(final @NonNull File f, final @NonNull PermissionsActivity permissionsActivity) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && !permissionsActivity.getPackageManager().canRequestPackageInstalls()) { permissionsActivity.requestInstallApkPermission(() -> installApk(f, permissionsActivity)); } Intent chooserIntent = new Intent(); chooserIntent.setAction(Intent.ACTION_INSTALL_PACKAGE); chooserIntent.setData(Uri.fromFile(f)); try { permissionsActivity.startActivity(chooserIntent); } catch (ActivityNotFoundException e) { e.printStackTrace(); Toast.makeText(permissionsActivity, R.string.error, Toast.LENGTH_SHORT).show(); } }
From source file:org.wso2.iot.agent.api.ApplicationManager.java
/** * Installs an application to the device. * * @param fileUri - File URI should be passed in as a String. *///from w ww . j av a 2s . c o m private void startInstallerIntent(Uri fileUri) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && policyManager.isDeviceOwnerApp(Constants.AGENT_PACKAGE)) { Uri packageFileUri; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { packageFileUri = convertContentUriToFileUri(fileUri); } else { packageFileUri = fileUri; } installPackage(packageFileUri); } else { boolean isUnknownSourcesDisallowed = Preference.getBoolean(context, Constants.PreferenceFlag.DISALLOW_UNKNOWN_SOURCES); CommonUtils.allowUnknownSourcesForProfile(context, !isUnknownSourcesDisallowed); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE); intent.setDataAndType(fileUri, resources.getString(R.string.application_mgr_mime)); intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); context.startActivity(intent); } else { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(fileUri, resources.getString(R.string.application_mgr_mime)); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } } }