Unity中AndroidManifest增加权限,打卡应用时不弹出权限申请
Posted fengxing999
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity中AndroidManifest增加权限,打卡应用时不弹出权限申请相关的知识,希望对你有一定的参考价值。
一 屏蔽第一次打开apk时权限弹窗:
在Activity下添加<meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="true" />。
二 在需要权限的位置再请求权限:
unity端:
using UnityEngine; #if UNITY_ANDROID AndroidJavaClass androidClass = new AndroidJavaClass("com.xxx.xxx.UnityPlayerActivity");//获取class,填写正确的Activity androidClass.CallStatic("requestExternalStorage");//调用静态方法,requestExternalStorage这个函数名你可以自己取,记住是静态函数 #endif
java端:
import android.support.v4.content.PermissionChecker; import android.support.v4.app.ActivityCompat; //前面说过了静态方法,android.permission.WRITE_EXTERNAL_STORAGE是外部存储权限,同理其他权限也可以动态请求 public static void requestExternalStorage() //检查权限避免重复请求相同权限,参数:activity,权限名 if (PermissionChecker.checkSelfPermission(this, "android.permission.WRITE_EXTERNAL_STORAGE") != 0) ActivityCompat.requestPermissions(this, new String[]"android.permission.WRITE_EXTERNAL_STORAGE", 100);//请求权限,参数:activity,权限名,请求码(不同的权限要求不同的请求码,可以自己定,比如我这个权限是100,另外的可以填102,103...)
如果请求权限时玩家拒绝授权:
//如果玩家拒绝授权,需要再次申请并说明申请理由 @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) super.onRequestPermissionsResult(requestCode, permissions, grantResults); if(100 != requestCode)return;//我们刚才定义的请求码是100 //给个弹窗告知玩家这个权限不会对他造成影响 if (ActivityCompat.shouldShowRequestPermissionRationale("这个权限不会访问隐私,求求你开一下嘛", "android.permission.WRITE_EXTERNAL_STORAGE")) (new Builder(b)).setMessage(string.storage_permissions_remind) .setPositiveButton("OK", new OnClickListener() public void onClick(DialogInterface var1, int var2) //点击ok,则再次请求 requestExternalStorage(); ).setNegativeButton("Cancel", new OnClickListener() public void onClick(DialogInterface var1, int var2) //点击cancel,todo ).create().show(); super.onRequestPermissionsResult(requestCode, permissions, grantResults);
以上是关于Unity中AndroidManifest增加权限,打卡应用时不弹出权限申请的主要内容,如果未能解决你的问题,请参考以下文章
在android AndroidManifest.xml文件中怎样设置访问网络的权限
如何在 android Unity 应用程序中禁用 android 运行时位置权限提示
关于合并Unity项目中不同的AndroidManifest.xml