關於 android 7.0 之前的 apk安裝,需要注意設定 intent.flag_activity_new_task 就好
intent intent = new intent(intent.action_view);
uri apkuri = uri.fromfile(file);
intent.setflags(intent.flag_activity_new_task);
startactivity(intent);
android 7.x apk安裝
在 android 7.0 引入了「私有目錄被限制訪問」,「strictmode api 政策」。 android 7.0 行為變更
」 strictmode api 政策」 是指禁止向你的應用外公開 file:// uri。使用上述方法安裝apk時會出現 fileuriexposedexception 異常。這個時候就需要使用fileprovider來解決這個問題:
步驟一 (fileprovider的申請),在manifest.xml中定義乙個fileprovider,**如下:
// 設定允許獲取訪問檔案的臨時許可權
// 用於設定fileprovider的檔案訪問路徑
步驟二 (建立 .xml),在res目錄新建xml資料夾,如圖所示
步驟三 (配置fileprovider檔案共享的路徑),在 apk_provider_paths.xml檔案中配置:
<?xml version="1.0" encoding="utf-8"?>
最後的安裝方式
intent intent = new intent(intent.action_view);
intent.setflags(intent.flag_activity_new_task);
uri apkuri;
if (build.version.sdk_int >= build.version_codes.n) else
startactivity(intent);
Android6 0以上,動態許可權申請
6.0許可權的基本知識,以下是需要單獨申請的許可權,共分為9組,每組只要有乙個許可權申請成功了,就預設整組許可權都可以使用了。group android.permission group.contacts permission android.permission.write contacts pe...
android 6 0以上撥打電話
文章 6.0以下手機正常,6.0以上的卻崩潰 解決方法 targetsdkversion 23以下的 private void calldirectly string mobile 然後manifest 加上許可權就ok了 targetsdkversion 23的需要加以下 final public...
Android 6 0以上的許可權申請的問題
一直都有許可權申請的問題,沒有足夠的重視,最近總是受到困擾,算了不說了,看 吧!1 先判斷sdk的版本號 if build.version.sdk int 23 else 2 targetapi build.version codes.m private void checkandrequestpe...