unity-android 的权限

https://docs.unity3d.com/Manual/android-manifest.html  

Unity会自动添加的权限当调用某些特定的Unity api:

Permissions

Unity automatically adds the necessary permissions to the manifest based on the Android Player Settings and Unity APIs that your app calls from the script. For example:

  • Network classes add the INTERNET permission
  • Using vibration (such as Handheld.Vibrate) adds VIBRATE
  • The InternetReachability] property adds ACCESS_NETWORK_STATE
  • Location APIs (such as LocationService) adds ACCESS_FINE_LOCATION
  • WebCamTexture APIs add CAMERA
     permission
  • The Microphone class adds RECORD_AUDIO
  • NetworkDiscovery and NetworkTransport.SetMulticastLock add CHANGE_WIFI_MULTICAST_STATE

For more information about permissions, see Android developer documentation on Android Manifest Permissions.

If your plug-ins require a permission by declaring it in their manifests, Unity automatically adds the permission to the resulting Android manifest during the merge stage. All Unity APIs that plug-ins call also contribute to the permissions list.

项目中有过一个ACCESS_FINE_LOCATION 的权限,原因是项目中用了tolua,反射了 UnityEngine.Input 类,其中有个成员是 location,类型是 LocationService。虽然反射了但是项目中也没有用这个接口,所以就单独排除了 location成员的反射。

(ps:ios中对应的权限是 NSLocationWhenInUsageDescription ,在info.plist中,ios声明权限的地方。)

Runtime permissions in Android 6.0 (Marshmallow)

动态权限,app运行的时候弹出给用户选择是同意某些权限,而不是安装的时候就同意。

可以在一开始游戏的时候就弹出所有的权限让用户选择,也可以直接在用到这个功能的时候弹出来让用户选择。如果使用需要权限的功能之前不做判断是否同意,比如当时是禁止的使用的状态,app就会崩溃。

所有的权限都是要申明在 androidmanifest.xml中的

 

 

你可能感兴趣的:(Unity)