Андрей Asked:2020-05-31 22:21:08 +0800 CST2020-05-31 22:21:08 +0800 CST 2020-05-31 22:21:08 +0800 CST 安装应用程序的权限 772 应该在 AndroidManifest.xml 中注册什么权限才能从该源安装应用程序? java 1 个回答 Voted Best Answer Andrew 2020-06-01T00:10:19+08:002020-06-01T00:10:19+08:00 要从未知来源安装,您需要以编程方式请求权限。但首先您需要在清单中设置相同的权限: <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> 在权限请求过程本身之前,您可以检查是否可以请求此类权限: getPackageManager().canRequestPackageInstalls() 现在关于许可安装应用程序的软件请求。这一切都是通过意图(文档)完成的: startActivity(new Intent(android.provider.Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES)); 或者您可以请求特定于应用程序的设置以允许安装: startActivity(new Intent(android.provider.Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, Uri.parse("package:your.application.package"))); 另外,如果有.apk要安装的文件,则可以通过以下方式进行: Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE); intent.setDataAndType(FileProvider.getUriForFile(this, "your.application.package.fileprovider", new File("/path/to/your/apk")), "application/vnd.android.package-archive"); intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); startActivity(intent); 您还可以在清单中设置权限以更改安全设置: <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> 这是有关 android 系统本身安全性的文档。要检查从未知来源安装的权限,您可以创建一个变量: boolean isNonPlayAppAllowed = Settings.Secure.getInt(getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS) == 1; 并检查何时尝试从侧面安装应用程序: if (!isNonPlayAppAllowed) { startActivity(new Intent(android.provider.Settings.ACTION_SECURITY_SETTINGS)); } 这是类似的问题1和2。
要从未知来源安装,您需要以编程方式请求权限。但首先您需要在清单中设置相同的权限:
在权限请求过程本身之前,您可以检查是否可以请求此类权限:
现在关于许可安装应用程序的软件请求。这一切都是通过意图(文档)完成的:
或者您可以请求特定于应用程序的设置以允许安装:
另外,如果有
.apk
要安装的文件,则可以通过以下方式进行:您还可以在清单中设置权限以更改安全设置:
这是有关 android 系统本身安全性的文档。要检查从未知来源安装的权限,您可以创建一个变量:
并检查何时尝试从侧面安装应用程序:
这是类似的问题1和2。