最近公司的游戏在作安全性测试,期间也暴露出了很多安全上的问题。虽然咱们今天要说的权限申请和安全性相关不大,可是也会影响到游戏的使用体验等,因此本篇博客中马三就想和你们谈谈Android6.0以上版本中的动态权限申请的一些事情。html
对于很多Unity程序员来讲,可能没有太多接触过Android或者iOS的相关开发,因此首先让咱们先来了解一些关于Android动态权限申请的一些知识点。android
Google在 Android 6.0 开始引入了权限申请机制,将全部权限分红了正常权限和危险权限。应用的相关功能每次在使用危险权限时须要动态的申请并获得用户的受权才能使用。程序员
系统权限分为两类:正常权限和危险权限。安全
下面马三把危险权限进行了罗列,权限是分组的,同一组的权限申请其中一个,同组的权限就所有都申请了。微信
特殊权限组: 网络
那么在Unity开发中,咱们又该如何处理Android的动态权限申请呢?对于那些须要动态申请的权限,咱们依然还须要在AndroidManifest里面再作声明。Android 这边在 target 23 以上时会启用权限检查,默认不给敏感权限,好比存储、语音等,须要 app 本身去申请,但这个的前提是你在 AndroidManifest 中生明了这个权限, 不然会申请失败,甚至致使崩溃。而这个动态权限的目的其实就是在于APP启动或者是须要某些权限的时候至关于加了一个二次确认的做用。好比咱们须要读写SD卡权限,这个权限在Android6.0以上会在程序启动之后动态的申请,可是咱们依然仍是须要在Manifest中进行以下的声明才能够:app
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="true" />
这个声明能够写在<application>或者<activity> Tag之间,建议写在<application> Tag之间比较好。post
在咱们使用到Unity一些须要受权的API调用时候(好比获取网络状态或者使用 Microphone Class),Unity会自动地去申请这些权限,毋须咱们额外地多写Android相关的代码。若是你想了解如何在Android层面中手动地进行一些动态权限申请,推荐去看一下 wuzhang 的这篇《Unity如何管理住Android 6.0 调皮的权限》博客。测试
在本篇博客中,马三和你们一块儿了解了Android6.0以上动态权限申请的一些概念以及如何在Unity中进行配置的操做,配置很简单,就一行代码的事情,但愿能够帮到你们~url
若是以为本篇博客对您有帮助,能够扫码小小地鼓励下马三,马三会写出更多的好文章,支持微信和支付宝哟!
做者:马三小伙儿
出处:http://www.javashuo.com/article/p-nqweuawa-gq.html 请尊重别人的劳动成果,让分享成为一种美德,欢迎转载。另外,文章在表述和代码方面若有不妥之处,欢迎批评指正。留下你的脚印,欢迎评论!