免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Android 在代碼中安裝 APK 文件

 http://www.cnblogs.com/newjeremy/p/7294519.html

話不說,上代碼

    private void install(String filePath) {        Log.i(TAG, "開始執(zhí)行安裝: " + filePath);        File apkFile = new File(filePath);        Intent intent = new Intent(Intent.ACTION_VIEW);        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {            Log.w(TAG, "版本大于 N ,開始使用 fileProvider 進(jìn)行安裝");            intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);            Uri contentUri = FileProvider.getUriForFile(                    mContext                    , "你的包名.fileprovider"                    , apkFile);            intent.setDataAndType(contentUri, "application/vnd.android.package-archive");        } else {            Log.w(TAG, "正常進(jìn)行安裝");            intent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");        }        startActivity(intent);    }

 代碼說明

關(guān)于在代碼中安裝 APK 文件,在 Android N 以后,為了安卓系統(tǒng)為了安全考慮,不能直接訪問軟件,需要使用 fileprovider 機(jī)制來訪問、打開 APK 文件。

上面的 if 語句,就是區(qū)分軟件運(yùn)行平臺(tái),來對(duì) intent 設(shè)置不同的屬性。

適配 Android 各個(gè)版本,使用代碼安裝 APK

第一步:

在清單文件(manifests.xml)application 標(biāo)簽中增加 <provider> 標(biāo)簽:

    <application>        <!--其他的配置項(xiàng)-->        <provider            android:name="android.support.v4.content.FileProvider"            android:authorities="你的包名.fileprovider"            android:exported="false"            android:grantUriPermissions="true">            <meta-data                android:name="android.support.FILE_PROVIDER_PATHS"                android:resource="@xml/file_paths" />        </provider>        <!--其他的配置項(xiàng)-->    </application>    

注意兩點(diǎn)內(nèi)容:

1. android:authorities="你的包名.fileprovider" 這個(gè)屬性要設(shè)置成你自己的包名。

2. <meta-data> 標(biāo)簽下 android:resource="@xml/file_paths" 是要配置的 xml 文件,他的內(nèi)容如下:

第二步:

在 res/xml 下增加文件: file_paths.xml 該文件內(nèi)容如下:

<?xml version="1.0" encoding="utf-8"?><paths>    <external-path        name="your_name"        path="your_path" /></paths>

上面的兩個(gè)屬性要根據(jù)自己的使用來配置。

其中 <external-path> 就是手機(jī)的外置存儲(chǔ)目錄。

第三步:

在 Java 代碼中使用最上面的代碼,問題解決。

這里面有個(gè)要注意的點(diǎn):

清單文件中的 android:authorities="你的包名.fileprovider" 和 JAVA 代碼中:

Uri contentUri = FileProvider.getUriForFile(                    mContext                    , "你的包名.fileprovider"                    , apkFile);

綠色背景的字段必須一致,否則會(huì)報(bào)錯(cuò)。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
解決 Android N 7.0 上 報(bào)錯(cuò):android.os.FileUriExposedExc...
Android 7.0文件共享
Android FileProvider 屬性配置詳解及FileProvider多節(jié)點(diǎn)問題
Android 7.0調(diào)用相機(jī)拍照,返回后顯示拍照照片
代碼運(yùn)行apk文件,程序更新安裝
Content Provider(二)之 FileProvider 實(shí)現(xiàn)應(yīng)用文件共享
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服