Unity打包沒有存儲權限黑屏的問題

經過Android8.0之後很多遊戲出現沒有存儲權限黑屏的問題。
有兩種解決方法:
第一種。
可以完全解決這個問題,會出現黑屏的問題是因爲你使用的Unity版本太舊了,自帶的class.jar包不適合現在的android版本,我們只需要更換到Unity2017之後的版本就可以了。
在android studio打包的同學,可以從Unity導出gradle工程。
這裏寫圖片描述
然後依次替換掉你Android項目中的文件。
這裏寫圖片描述
libs中的jar包,aar包。
src文件中的asset資源文件,java文件中的unity的Activity腳本,jniLibs文件中的so文件,res中的資源,還有mainfest中的不一樣的地方進行合併。
build.gradle中的不一樣的地方合併,以Unity的安卓項目爲主。
這樣差不多就全部替換完成了。
第二種。
根據你使用的unity版本去官網下載版本補丁,可以解決這個問題。下面這個方式可以不用。

如果項目不方便更換unity版本,會出現很多問題的話,就使用這個方式。
方式鏈接
就是在unity的activity喚醒之前獲取到存儲權限。
獲取單個權限的方式:

    int hasWriteContactsPermission=checkSelfPermission
        (Manifest.permission.WRITE_EXTERN_STORAGE);
    void GetPermission()
    {
        if(hasWriteContentsPermission != 
        PackageManager.PERMISSION_GRANTED){
        requestPermissions(new String[]
        {Manifest.permisssion.WRITE_EXTERNAL_STORAGE},
        REQUEST_CODE_WRITE_PERMISSION);

        returns;
    }



//獲取權限之後的回調
@Override
public void onRequestPermissionResult(
   int requestCode,String[] permissions,int[]{
   if(permissions[0].equals(
       Manifest.permission.WRITE_EXTERNAL_STORAGE)
       &&grantResults[0] == 
       PackageManager.PERMISSON_GRANTED){
           //用戶同意使用權限 -->進入到Unity的Activity
           startGetImageThead();
       }else{
           //如果應用是第一次請求該權限,則直接調用requestPermissions函數去請求權限;
           //如果不是則代表用戶勾選了“不再提醒”,彈出dialog,告訴用戶爲什麼你需要該權限,讓用戶手動開啓該權限。

       }
}

調用多個權限可以看看這個博客:動態獲取權限

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章