目录

1.先上最终研究成果(unity已经提供了面向Android的 权限申请方法)

2.疑难问题

3.原理解析:

1.先上最终研究成果(unity已经提供了面向Android的 权限申请方法)

ex:UnityEngine.Android.Permission.RequestUserPermission(s);

重要提示:使用unity的动态权限申请可以动态的弹出是否同意该权限界面,方便了很多

string[] strs=new string[] {

"android.permission.INTERNET",

"android.permission.READ_PHONE_STATE",

"android.permission.READ_EXTERNAL_STORAGE",

"android.permission.WRITE_EXTERNAL_STORAGE",

"android.permission.ACCESS_WIFI_STATE",

"android.permission.ACCESS_NETWORK_STATE",

"android.permission.GET_TASKS",

"android.permission.REQUEST_INSTALL_PACKAGES",

"android.permission.WAKE_LOCK",

"android.permission.SYSTEM_ALERT_WINDOW",

"android.permission.CHANGE_WIFI_STATE",

"android.permission.CHANGE_NETWORK_STATE",

"android.permission.ACCESS_COARSE_LOCATION",

"android.permission.ACCESS_FINE_LOCATION",

"android.permission.SYSTEM_OVERLAY_WINDOW",

"android.permission.ACCESS_COARSE_UPDATES",

"android.permission.WRITE_SETTINGS",

"android.permission.BATTERY_STATS",

"android.permission.MOUNT_UNMOUNT_FILESYSTEMS"

};

// Use this for initialization

void Start () {

Debug.Log("start main");

// var iscon= PlayerConnection.instance.isConnected;

strs.ToList().ForEach(s=>{

//Debug.Log("RequestUserPermission: "+s);

//if (!Permission.HasUserAuthorizedPermission(s))

//{

Permission.RequestUserPermission(s);

Debug.Log("add RequestUserPermission: " + s);

//}

//else

//{

// Debug.Log("it has RequestUserPermission: " + s);

//}

});

//UnityEngine.Networking.PlayerConnection.PlayerConnection.

//实例化上下文环境

// adUnionContext = AdUnionContext.GetInstance();

初始化SDK

//AdUnionSDK.Init(APP_ID, new OnAuInitListenerProxy());

初始化unity自带的控件

initComponents();

}

2.疑难问题

中间遇到的问题,配置在AndroidManifest.xml中的权限有时候会导致不能动态申请到所需权限,所以可以全部注释掉,然后动态添加。

3.原理解析:

其实调用的是Android方法

com.example.androidpermissionmgr.PermissionProvider 中的verifyPermissions方法

#if UNITY_ANDROID

private AndroidJavaClass _request;

public AndroidJavaClass Request {

get {

if (_request == null)

_request = new AndroidJavaClass ("com.example.androidpermissionmgr.PermissionProvider");

return _request;

}

}

#else

public void RequestPermissions (int requestCode, params string[]permissions)

{

Debug.Log ("[PermissionProvider] Requesting permissions: "+ requestCode + " " + permissions );

Request.CallStatic ("verifyPermissions", gameObject.name, requestCode, permissions);

}

Android10动态权限提前,Unity2019中的android动态申请权限(Permissions)相关推荐

  1. Unity2019中的android动态申请权限(Permissions)

    请使用最新文章: Unity2022中的android权限处理(Permissions) 动态权限,权限弹窗 注意事项: 1.因为新规等因素需要提前弹出游戏自己的权限描述界面 2.玩家连续多次拒绝权限 ...

  2. Android 不申请权限储存、删除相册图片

    Android 不申请权限储存.删除相册图片 前言 最近重新看了下安卓的储存适配,并结合之前做的拍照.裁切demo,小小实验了一下.Android 6.0增加了动态文件权限申请; Android 7. ...

  3. 【Android 应用开发】动态权限管理示例 ( 使用原生代码实现 | 申请权限 | 判定权限申请结果 | 判定 “ 不再询问 “ 情况 )

    文章目录 一.申请权限 二.判定权限申请结果 三.判定 " 不再询问 " 情况 四.完整代码示例 1.权限管理代码 2.主界面代码 3.执行结果 五.博客资源 一.申请权限 首先 ...

  4. android申请权限一次性申请多个,Android 批量申请权限

    Android开发时,到6.0系统上之后,有的权限就得申请才能用了. Android将权限分为正常权限 和 危险权限 详细可参考: (https://www.cnblogs.com/liuzhipen ...

  5. android 重复申请权限,去除AndroidManifest.xml里重复申请的权限(uses-permission)

    2017年的第一篇文章,新的起点,不忘初心 花了点时间,解决了最近遇到的一个问题: 在引用第三方的服务时都会在Manifest中添加权限,一般都是无脑的复制粘贴,久而久之,项目里重复的权限越来越多 在 ...

  6. 制作android动态壁纸,如何使用LibGDx制作Android动态壁纸?

    我想制作 Android动态壁纸.我想使用LibGDx.我发现了这个信息: http://www.badlogicgames.com/wordpress/?p=2652 不幸的是,我的壁纸复制代码,e ...

  7. android 动态更新配置文件,基于DX的Android动态更新技术

    原标题:基于DX的Android动态更新技术 转自:文/Mob开发者平台 技术副总监 余勋杰 DX简介 安卓程序的主要代码是java 代码,不过由于安卓系统不直接使用sun的jvm,所以从javac编 ...

  8. jquery动态追加html,jQuery中几种动态追加元素的方法

    几乎所有网站的开发都离不开jQuery,jQuery可以很方便的实现网页中的一些效果,也很轻松的对网页中的一些DIV元素进行添加,修改或删除的操作.今天我们就说一说,如何对网页中某个指定的DIV进行元 ...

  9. css 中动态获取宽度,css中的calc动态计算长度值

    1 场景 css的样式中,存在动态计算长度的需求. 2 方案 使用css中的calc函数动态计算css中的长度值. 语法: calc(expression) 参数说明: 值 描述 expression ...

  10. android 拍照申请权限,Android拍照6.0以上动态获取权限

    ## 前言=== 在Android系统6.0以上拍照需要动态获取权限,并且在获取照片处理上也有些不同: 直接上代码吧,就不再多说了..... 具体实现 在res下新建xml文件夹,新建file_pat ...

最新文章

  1. 面试mysql中怎么创建索引_阿里面试:MySQL如何设计索引更高效?
  2. MATLAB实战系列(二)- 如何使用YALMIP检验数学模型的正确性?
  3. golang string 加号连接性能慢_面试必备:浅析C#性能优化的若干种方法
  4. .NET中得到计算机硬件信息
  5. 山东济南站见面会完美收官
  6. android layout wrap_content,android-如果高度为WRAP_CONTENT,则不显示VideoVi...
  7. Android中long类型对应Java/Jni/C++中的类型
  8. 如何访问服务器表中信息,如何在 RADIUS 服务器的拨号接口上应用访问列表
  9. mysql数据库中更新数据表用以下哪一项_删除数据表用以下哪一项()_学小易找答案...
  10. 关于Linux消息队列的简单说明、使用、编码
  11. python中split什么意思_python中split的意思是什么(python中字符串的意思)
  12. 学习java数组的练习代码
  13. CF1438D Powerful Ksenia
  14. Android视频编辑器(二)预览、录制视频加上水印和美白磨皮效果
  15. android ui web,AndroidUI4Web:最适合Android开发者的WebApp框架
  16. service XXX restart的执行流程
  17. HTML5——HTML5元素周期表
  18. 微软官方Windows 7 USB/DVD Download Tool下载
  19. windows 查看端口
  20. HBuilder的安装与试用

热门文章

  1. js 正则表达式详细基础教程
  2. Linux的c编程getopt(分析命令行参数)
  3. 使用python fabric搭建RHEL 7.2大数据基础环境以及部分优化
  4. Mybatis学习随笔
  5. 团队作业4——第一次项目冲刺(Alpha版本)2017.4.24
  6. bzoj1927最小费用最大流
  7. Mysql 日期转换
  8. HttpClient 教程 (六)
  9. Oracle EBS: ASCP 学习
  10. ASP.NET DEMO Ⅳ : 使用数据源控件将数据绑定到 ListControl 上