您的位置:首页 > 财经 > 金融 > Android app安装第三方应用

Android app安装第三方应用

2024/12/23 10:22:52 来源:https://blog.csdn.net/shi450561200/article/details/141255768  浏览:    关键词:Android app安装第三方应用

在Android设备上安装第三方应用通常涉及一系列步骤,这些步骤可能会因Android版本的不同而有所差异。但大致流程可以归纳为以下几个关键步骤:

1、开启权限

      开启“允许安装未知来源应用”,可以去安全设置那里设置允许安装未知来源,也可以使用代码跳转

2、在AndroidManifest.xml添加了权限

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

3、判断是否有权限

if(isUnknownSourcesEnabled){//权限没有打开则提示用户去手动打开openInstallPermission()}/*** 跳转到设置-允许安装未知来源-页面*/private void openInstallPermission() {Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);startActivity(intent);}/*** 判断* 是否允许* 安装位置来源*/public boolean isUnknownSourcesEnabled(Context context) {try {return Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS) == 1;} catch (Settings.SettingNotFoundException e) {return false;}}

4、执行安装 

filePath为绝对路径,例如demo.apk位于file/d/下,则filePath就为/file/d/demo.apk
   /*** 安装Apk*/public void installApk(String filePath) {File apkFile = new File(filePath);Intent intent = new Intent(Intent.ACTION_VIEW);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);if (apkFile.exists()) {Uri apkUri = FileProvider.getUriForFile(mContext(),  mContext().getPackageName() + ".fileprovider", apkFile);intent.setDataAndType(apkUri, "application/vnd.android.package-archive");intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);try {startActivity(intent);} catch (android.content.ActivityNotFoundException ex) {// 安装器未找到,可能用户未启用安装未知来源Logger.d("===安装器未找到==" + ex.toString());}} else {Logger.d("===文件不存在===");}}

5、对了android7以上还需要配置FileProvider

    <!-- 读写sd卡文件处理 --><providerandroid:name="androidx.core.content.FileProvider"android:authorities="csu.xiaoya.robotApp.fileprovider"android:exported="false"android:grantUriPermissions="true"tools:ignore="WrongManifestParent"><meta-dataandroid:name="android.support.FILE_PROVIDER_PATHS"android:resource="@xml/file_paths" /></provider>

6、file_paths文件内容

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android"><root-path name="root" path="."/><files-path name="files" path="." /><cache-path name="cache" path="." /><external-path name="external" path="." /><external-files-path name="name" path="path" /><external-cache-path name="name" path="path" /><external-path name="external_files" path="."/>
</paths>

最后提示apk下载逻辑没有实现,需要资格去实现。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com