Unity 中Android 动态申请权限

如题,最近开发中需要读取移动端本地歌曲的功能,需要用户授权。

1、首先在unity项目中Plugins文件夹下Android文件下的AndroidManifest.xml文件,添加需要授权的权限。

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.INTERNET" />

2、有可能会遇到用户安装应用的时候,没有给授权,需要在应用中动态获取权限。刚开始的想法:在unity调用的JAR包中直接动态申请,导出JAR包的时候打出包发现,在不同的机型上面会报错。

查了一下由于Android版本不一致导致的,需要对Android6.0的版本进行判断处理,发现如果做处理的话需要升级Android API版本,遂舍弃。

3、查了一下unity 动态授权的API,竟然有,很是惊喜,

 if( !Permission.HasUserAuthorizedPermission( Permission.ExternalStorageRead ) )
            {
                Permission.RequestUserPermission( Permission.ExternalStorageRead );
            }
            else
            {
                //应用中代码处理
            }    

需要unity 2018 .4 之后的版本,https://docs.unity3d.com/ScriptReference/Android.Permission.html官网API,如果想要做特殊处理也可以添加回调。就很舒服。

AS导出JAR包确实有很多的坑需要填,如有需要留言,开一篇unity 调用JAR包。

猜你喜欢

转载自blog.csdn.net/u013748096/article/details/116667643