Unity package to obtain android mobile phone system permissions

After checking the information, Unity has its own method Permission to dynamically obtain user permissions. It requires the UnityEngine.Android namespace and uses the dynamic acquisition interface RequestUserPermissions. The parameter is a string array type parameter. Test code
:

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()
    {
    
    
        
    }
}

You can go here to check Android permissions and quote this guy:
Android permissions summary quote

The most important thing is: dynamic acquisition requires modifying the UnityManifest.xml file in the unity installation directory:

This is my directory: D:\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Apk (right-click the unity desktop icon to open the target folder). Just add the
Insert image description here
permissions you need to obtain above: "</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>

Test after packaging: No problem, you can obtain the corresponding permissions
Insert image description here

Guess you like

Origin blog.csdn.net/QO_GQ/article/details/129888809