unity 打包获取android手机系统权限

查了一下资料,unity里面自带有动态获取用户权限的方法Permission,需要UnityEngine.Android命名空间,使用动态获取接口RequestUserPermissions,参数是一个string数组类型参数
测试代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Android;
using UnityEngine.UI;

public class PermissionMgr : MonoBehaviour
{
    
    
    // Start is called before the first frame update
    void Start()
    {
    
    
        string[] NowTypes = new string[]{
    
    
            "android.permission.MANAGE_DOCUMENTS",
            "android.permission.DELETE_CACHE_FILES",
            "android.permission.READ_OWNER_DATA",
            "android.permission.INTERNET",
            "android.permission.ACCESS_WIFI_STATE",
            "android.permission.ACCESS_FINE_LOCATION",
            "android.permission.ACCESS_LOCATION_EXTRA_COMMANDS",
            "android.permission.READ_SMS",
            "android.permission.RECEIVE_SMS",
            "android.permission.ANSWER_PHONE_CALLS",
            "android.permission.PROCESS_OUTGOING_CALLS",
            "android.permission.READ_CONTACTS",
            "android.permission.READ_CALENDAR",
            "android.permission.RECORD_AUDIO",
            "android.permission.STATUS_BAR",
            "android.permission.EXPAND_STATUS_BAR",
            "android.permission.INSTALL_PACKAGES",
            "android.permission.WAKE_LOCK",
        };
        Permission.RequestUserPermissions(NowTypes);
    }

    // Update is called once per frame
    void Update()
    {
    
    
        
    }
}

安卓权限可以去这里查看一下,引用一下这位大佬的:
安卓权限归纳引用

最重要的是:动态获取需要修改unity安装目录下的UnityManifest.xml文件:

这是我的目录:D:\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Apk(右键unity桌面图标打开目标文件夹)
在这里插入图片描述
只需要在:“</manifest>”上面添加需要获取的权限就可以了

<?xml version="1.0" encoding="utf-8"?>
<!-- GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN-->
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.unity3d.player"
    xmlns:tools="http://schemas.android.com/tools">
    <application>
        <activity android:name="com.unity3d.player.UnityPlayerActivity"
                  android:theme="@style/UnityThemeSelector">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
        </activity>
    </application>
	<uses-permission android:name="android.permission.MANAGE_DOCUMENTS" />
	<uses-permission android:name="android.permission.DELETE_CACHE_FILES" />
	<uses-permission android:name="android.permission.READ_OWNER_DATA" />
	<uses-permission android:name="android.permission.INTERNET" />
	<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
	<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
	<uses-permission android:name="android.permission.READ_SMS" />
	<uses-permission android:name="android.permission.RECEIVE_SMS" />
	<uses-permission android:name="android.permission.ANSWER_PHONE_CALLS" />
	<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
	<uses-permission android:name="android.permission.READ_CONTACTS" />
	<uses-permission android:name="android.permission.READ_CALENDAR" />
	<uses-permission android:name="android.permission.RECORD_AUDIO" />
	<uses-permission android:name="android.permission.STATUS_BAR" />
	<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
	<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
	<uses-permission android:name="android.permission.WAKE_LOCK" />
</manifest>

打包之后测试:没问题,可以获取对应权限
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/QO_GQ/article/details/129888809
今日推荐