首页 > 其他分享 >Android 8.0 framework 授予安装未知来源应用权限(去掉未知来源弹窗)

Android 8.0 framework 授予安装未知来源应用权限(去掉未知来源弹窗)

时间:2023-07-23 19:05:31浏览次数:35  
标签:8.0 修改 应用程序 framework Intent 设置 未知 权限

Android 8.0 framework 授予安装未知来源应用权限(去掉未知来源弹窗)

在Android 8.0及更高版本中,系统默认禁止安装来自未知来源的应用程序。这是为了确保用户设备的安全性,避免恶意软件的安装。然而,在某些情况下,我们可能仍然需要安装这些未知来源的应用程序。本文将介绍如何通过修改Android 8.0框架的设置,来授予安装未知来源应用的权限,并去掉未知来源弹窗。

修改应用程序的AndroidManifest.xml文件

首先,我们需要向应用程序的AndroidManifest.xml文件中添加一个权限声明,以便能够修改系统设置。在manifest标签下添加以下代码:

<uses-permission android:name="android.permission.WRITE_SETTINGS" />

这将允许应用程序修改设备的系统设置。

请求修改系统设置的权限

然后,我们需要在应用程序的代码中请求修改系统设置的权限。在你需要执行修改系统设置的操作之前,添加以下代码:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    if(!Settings.System.canWrite(context)) {
        Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS);
        intent.setData(Uri.parse("package:" + context.getPackageName()));
        startActivityForResult(intent, REQUEST_CODE);
    }
}

这段代码首先检查设备的Android版本是否大于等于Android 8.0(Build.VERSION_CODES.O)。然后,它检查应用程序是否已被授予修改系统设置的权限。如果没有被授予,它将启动一个设置界面,允许用户授予权限。

处理权限请求结果

当用户在设置界面中授予或拒绝权限后,我们需要在应用程序中处理授权结果。在你的ActivityFragment中,重写以下方法:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            if (Settings.System.canWrite(context)) {
                // 用户已授权修改系统设置的权限
                // 在此执行安装未知来源应用的操作
            } else {
                // 用户未授权修改系统设置的权限
                // 在此处理未授权的情况
            }
        }
    }
}

当用户授予或拒绝权限后,系统将调用onActivityResult方法。我们需要检查授权结果,并根据结果执行相应的操作。

安装未知来源应用

当用户授予修改系统设置的权限后,我们可以执行安装未知来源应用的操作。在合适的位置添加以下代码:

Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
intent.setDataAndType(Uri.fromFile(new File(apkFilePath)), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

这段代码创建一个用于安装应用程序的意图,并指定应用程序的文件路径。设置FLAG_ACTIVITY_NEW_TASK标志将启动一个新的任务,以确保正确处理应用程序的安装。

结论

通过修改应用程序的AndroidManifest.xml文件,请求修改系统设置的权限,并处理权限请求结果,我们可以在Android 8.0及更高版本中授予安装未知来源应用的权限,并去掉未知来源弹窗。请记住,在请求修改系统设置的权限时,要遵循用户隐私和安全的原则,并给予用户明确的解释和选择。

标签:8.0,修改,应用程序,framework,Intent,设置,未知,权限
From: https://blog.51cto.com/u_16175517/6827372

相关文章

  • 2022 javax.management.InstanceNotFoundException: org.springframework.boot:ty
    解决"2022javax.management.InstanceNotFoundException:org.springframework.boot:ty"的步骤对于这个错误,我们需要明确以下几个步骤来解决问题。下面是一个整体的流程表格:步骤描述1确认是否存在相关的InstanceNotFoundException异常2检查org.springframework.boo......
  • Building for iOS, but the linked and embedded framework 'libpag.framework' w
    BuildingforiOS,butthelinkedandembeddedframework'libpag.framework'issueWhendevelopingiOSapps,itisnotuncommontocomeacrossvariouserrorsandissuesduringthebuildprocess.Onesuchissueisthe"BuildingforiOS,butth......
  • Ubantu下安装mysql8.0密码重置
    ubantu下安装mysql8.0使用推荐的aptitude来安装,省心省力。sudoaptitudeinstallmysql-server无脑“Y“安装成功。sudomysql-uroot-p会让你输入密码,密码???什么密码,什么时候有密码了。这种方式安装的貌似没有给设置密码的机会。所以需要重新设置。首先编辑sudovim/etc......
  • Qt(5.8.0)-运行框升级版
    Qt编程实现简单的命令行窗口本文介绍如何使用Qt框架编写一个简单的命令行窗口应用程序。通过该程序,用户可以在窗口中输入命令,并通过点击按钮执行命令。首先,我们需要创建一个名为"Widget"的类,继承自QWidget,用于创建应用程序的主窗口。以下是widget.h头文件中的代码:#ifndefWIDGE......
  • Qt(5.8.0)-Cmd模拟(纯手写)
    以下是对上述Qt程序的详细博客,使用Markdown的代码块方式呈现:Qt编程:实现一个简单的命令行窗口Qt是一种跨平台的C++应用程序开发框架,可以用于开发各种类型的应用程序,包括图形界面(GUI)应用程序。本文将介绍如何使用Qt框架实现一个简单的命令行窗口,类似于Windows的运行框,用户可以在......
  • mysql 8.0 Data Dictionary initialization failed.
    MySQL8.0数据字典初始化失败MySQL是一种常用的关系型数据库管理系统,广泛应用于各种应用程序中。然而,有时在使用MySQL时,可能会遇到一些错误和问题。其中一个常见的错误是“mysql8.0DataDictionaryinitializationfailed.”。问题描述当尝试启动MySQL服务器时,可能会收到以下......
  • mysql8.0查询死锁语句
    如何实现“mysql8.0查询死锁语句”简介在开发过程中,我们经常会遇到数据库死锁的情况。死锁是指两个或多个事务互相持有对方所需要的资源,导致事务无法继续执行的情况。MySQL8.0提供了一种查看当前死锁情况的方法,以便我们能够定位和解决问题。本文将详细介绍如何在MySQL8.0中......
  • helm安装mysql8.0集群模式
    1.安装operator:MysqlCluster2.使用operator安装mysql8.0集群 CREATEUSER'root'IDENTIFIEDBY'134er6';ALTERUSER'root'@'%'IDENTIFIEDBY'Qwer#@!';apiVersion:mysql.radondb.com/v1alpha1kind:MysqlClusterme......
  • MySQL8.0安装Mcafee审计插件,开启审计功能
    最近根据安全审计要求,数据库需要开启审计日志功能社区版本的MySQL8没有官方的审计日志插件,我们可以选择Mcafee提供的插件进行安装1、下载插件首先需要根据数据库版本选择对应的插件;https://github.com/mcafee-enterprise/mysql-audit注意:这里需要与数据库版本严格对应,笔者尝......
  • ubuntu18.04、ubuntu20.04桌面版换国内源
    ubuntu18.04、ubuntu20.04桌面版换国内源一、ubuntu18.04换源1.备份原始源文件source.list2.修改源文件二、ubuntu20.04换源三、其他换源方法安装好ubuntu18.04或ubuntu20.04后,软件更新默认使用国外源,在国内更新时速度很慢,所以需要更换成国内源,这样软件的更新和安装才......