Unity通过XXpermission插件获取MANAGE_EXTERNAL_STORAGE权限

2024-02-27 06:20

本文主要是介绍Unity通过XXpermission插件获取MANAGE_EXTERNAL_STORAGE权限,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近公司准备用Unity做一个安卓端的文件管理器功能,文件管理器已经做完了。刚开始的时候想要申请一下所有文件权限,发现在Unity里面申请所有文件权限(android.permission.MANAGE_EXTERNAL_STORAGE)相对来说比较麻烦。所以准备写一下文章记录一下如何申请到所有文件权限的。

我的
Unity版本是2021.3.27f1c2
Android版本是2022.3.1

在网上找到一个安卓使用的比较方便的插件叫XXPermissions,申请权限的界面也封装好了的。仓库地址是: https://github.com/getActivity/XXPermissions
大家假如安卓功底够好的话,可以直接看这个仓库的readme。
第一步
在这里插入图片描述
在这里插入图片描述
创建一个空的activty工程
根据仓库的readme配置好相关文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
新建个java类
在这里插入图片描述叫unitypermission,复制下面的代码进去

package com.demo.myapplication;import android.app.Activity;
import android.util.Log;import java.util.List;public class unitypermission {private String TAG = "PERMISSION";private Activity _unityActivity;Activity getActivity() {if (null == _unityActivity) {try {Class<?> classtype = Class.forName("com.unity3d.player.UnityPlayer");Activity activity = (Activity) classtype.getDeclaredField("currentActivity").get(classtype);_unityActivity = activity;} catch (ClassNotFoundException e) {} catch (IllegalAccessException e) {} catch (NoSuchFieldException e) {}}return _unityActivity;}
//调用XXpermission相关APIpublic void RequestPermission() {com.hjq.permissions.XXPermissions.with(getActivity())// 申请单个权限.permission(com.hjq.permissions.Permission.MANAGE_EXTERNAL_STORAGE)// 设置权限请求拦截器(局部设置)//.interceptor(new PermissionInterceptor())// 设置不触发错误检测机制(局部设置)//.unchecked().request(new com.hjq.permissions.OnPermissionCallback() {@Overridepublic void onGranted(List<String> permissions, boolean allGranted) {if (!allGranted) {return;}Log.i(TAG, "onGranted: 申请权限成功");}@Overridepublic void onDenied(List<String> permissions, boolean doNotAskAgain) {if (doNotAskAgain) {// 如果是被永久拒绝就跳转到应用权限系统设置页面com.hjq.permissions.XXPermissions.startPermissionActivity(getActivity(), permissions);} else {// 处理权限被拒绝的情况}}});}
}

打开build.gradle
在这里插入图片描述
点击绿色的按钮打jar包出来,注意上图第二个红框,可能不同的AndroidStudio出来jar包的位置不一样。

复制jar包至Unity工程的Plugins/Android下
在这里插入图片描述
打开Unity的project settings,勾选以下几个地方
在这里插入图片描述然后plugins下面会多出下面几个文件
在这里插入图片描述
依次修改以下文件为
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

写一个C#脚本,挂到场景任意地方,然后打包至安卓手机上运行。就能够申请所有文件权限了。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Test : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){AndroidJavaObject androidJavaObject = new AndroidJavaObject("com.demo.myapplication.unitypermission");androidJavaObject.Call("RequestPermission");}// Update is called once per framevoid Update(){}
}

我的项目仓库地址为
https://github.com/oneSitDown/UnityXXpermission

这篇关于Unity通过XXpermission插件获取MANAGE_EXTERNAL_STORAGE权限的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/751466

相关文章

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

使用Python实现获取屏幕像素颜色值

《使用Python实现获取屏幕像素颜色值》这篇文章主要为大家详细介绍了如何使用Python实现获取屏幕像素颜色值,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、一个小工具,按住F10键,颜色值会跟着显示。完整代码import tkinter as tkimport pyau

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

maven中的maven-antrun-plugin插件示例详解

《maven中的maven-antrun-plugin插件示例详解》maven-antrun-plugin是Maven生态中一个强大的工具,尤其适合需要复用Ant脚本或实现复杂构建逻辑的场景... 目录1. 核心功能2. 典型使用场景3. 配置示例4. 关键配置项5. 优缺点分析6. 最佳实践7. 常见问题

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

使用Python获取JS加载的数据的多种实现方法

《使用Python获取JS加载的数据的多种实现方法》在当今的互联网时代,网页数据的动态加载已经成为一种常见的技术手段,许多现代网站通过JavaScript(JS)动态加载内容,这使得传统的静态网页爬取... 目录引言一、动态 网页与js加载数据的原理二、python爬取JS加载数据的方法(一)分析网络请求1

通过cmd获取网卡速率的代码

《通过cmd获取网卡速率的代码》今天从群里看到通过bat获取网卡速率两段代码,感觉还不错,学习bat的朋友可以参考一下... 1、本机有线网卡支持的最高速度:%v%@echo off & setlocal enabledelayedexpansionecho 代码开始echo 65001编码获取: >

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现