码迷,mamicode.com
首页 > 移动开发 > 详细

Unity中AndroidManifest增加权限,打卡应用时不弹出权限申请

时间:2019-08-27 19:26:59      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:参数   player   ring   content   external   访问   imp   span   super   

一 屏蔽第一次打开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增加权限,打卡应用时不弹出权限申请

标签:参数   player   ring   content   external   访问   imp   span   super   

原文地址:https://www.cnblogs.com/fengxing999/p/11420124.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!