gpt4 book ai didi

c# - 你如何在c#中访问android权限

转载 作者:太空宇宙 更新时间:2023-11-03 12:00:07 25 4
gpt4 key购买 nike

我正在使用 Unity 构建适用于 Android 的应用程序,我需要访问手机中的权限。

到目前为止,我已经能够引用相机和麦克风,但似乎没有引用其他两个权限;存储和电话。我如何访问它们?

 void OnGUI()
{
//microphone
#if PLATFORM_ANDROID
if (!Permission.HasUserAuthorizedPermission(Permission.Microphone))
{
dialog.AddComponent<PermissionsRationaleDialog>();

}
if (!Permission.HasUserAuthorizedPermission(Permission.Camera))
{
dialog.AddComponent<PermissionsRationaleDialog>();

}
else if (dialog != null)
{
Destroy(dialog);
}
#endif
}

如您所见,权限和摄像头有引用,但我在互联网上找不到任何有解决方案的地方。

最佳答案

在你的代码中看到 Permission.Microphone 实际上是一个字符串。因此,您可以像在 Android Manifest 中使用一样直接使用权限。

这个可以用来获取Android Storage的读写权限。(写权限也意味着读权限)

using UnityEngine;
using UnityEngine.Android;

public class RequestPermissionScript : MonoBehaviour
{
void Start()
{
if (Permission.HasUserAuthorizedPermission(Permission.ExternalStorageWrite))
{
// The user authorized use of the microphone.
}
else
{
// We do not have permission to use the microphone.
// Ask for permission or proceed without the functionality enabled.
Permission.RequestUserPermission(Permission.ExternalStorageWrite);
}
}
}

这是 Unity Documentation For Requesting Permission in Android 中所说的内容

A string that describes the permission to request. For permissions which Unity has not predefined you may also manually provide the constant value obtained from the Android documentation here: https://developer.android.com/guide/topics/permissions/overview#permission-groups such as "android.permission.READ_CONTACTS".

这意味着您可以直接使用 "android.permission.WRITE_EXTERNAL_STORAGE" 而不是使用 permission.ExternalStorageWrite。对于 Android 平台上可用的任何其他权限也是如此。

对于电话权限,Unity 没有定义内置常量,因此您需要像在 android 中一样使用该权限。这里只是举一个请求阅读联系人权限的例子。因为我不完全理解电话许可的实际含义。 Unity 与 Android Permission 无关,这些实际上是 Android 可以理解的一组权限字符串。因此,对于一些最常用的标准权限,unity 有一些预定义的常量字符串值。那其实是为了方便开发者使用。

public class RequestPermissionScript : MonoBehaviour
{
void Start()
{
if (Permission.HasUserAuthorizedPermission("android.permission.READ_CONTACTS"))
{
// The user authorized use of the microphone.
}
else
{
// We do not have permission to use the microphone.
// Ask for permission or proceed without the functionality enabled.
Permission.RequestUserPermission("android.permission.READ_CONTACTS");
}
}
}

希望这能解决您的问题。谢谢。

关于c# - 你如何在c#中访问android权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57416441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com