加以下代碼:
“`java
private static final int REQUEST_CODE_INSTALL_PERMISSION = 123;
private void requestInstallPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
if (!getPackageManager().canRequestPackageInstalls()) {
Uri packageUri = Uri.parse(“package:” + getPackageName());
Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageUri);
startActivityForResult(intent, REQUEST_CODE_INSTALL_PERMISSION);
} else {
// 已經開啟允許安裝未知來源應用的權限
}
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_INSTALL_PERMISSION) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
if (getPackageManager().canRequestPackageInstalls()) {
// 用戶已經允許安裝未知來源應用的權限
} else {
// 用戶未允許安裝未知來源應用的權限
}
}
}
}
“`
4. 申請權限后的操作
當用戶在權限申請界面允許了安裝未知來源應用權限后,我們可以在onActivityResult()方法中監聽到,并可以執行相應的操作。
“`java
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(reqeclipse打包的apk損壞uestCode, resultCode, data);
if (requestCode == REQUEST_CODE谷歌瀏覽器生成apk_INSTALL_PERMISSION) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
if (getPackageManager().canRequestPackageInstalls()) {
// 用戶已經允許安裝未知來源應用的權限
// 繼續執行應用安裝完成后的操作
} else {
// 用戶未允許安裝未知來源應用的權限
}
}
}
}
“`
5. 應用安裝完成后的操作
你可以在廣播接收器的onReceive()方法中執行應用安裝完成后的操作,比如顯示安裝完成的提示信息或自動啟動應用等。
“`java
public class ApkInstallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_PACKAGE_ADDED)) {
// 應用安裝完成后的操作
Toast.makeText(context, “應用安裝完成”, Toast.LENGTH_SHORT).show();
}
}
}
“`
通過以上步驟,我們就可以監聽應用安裝完成的事件,并在安裝完成后執行相應的操作。請注意,在Android 8.0及以上版本中需要動態申請權限才能收到安裝廣播。