目錄
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);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/41887.html
標籤:其他
上一篇:用matlab找特征值為1對應的特征向量,為什么輸出不出來特征值為1的元素序號
下一篇:大佬們給指點一下唄
