PICO4 MR开发之外部存储读写
一、前言
在使用PICO4 Ultra设备进行MR游戏开发时,会遇到从设备存储空间读写文件的需求,比如使用空间网格能力时,可以将空间网格转化为OBJ格式模型文件保存至设备存储空间,或者从设备存储空间读取用户数据等。这些情形下,有时为了便于处理,会直接从应用的沙盒目录里进行读写操作,但是沙盒目录会随着应用的卸载被删除,并不是一种理想的读写路径。所以直接从设备存储空间的某个文件夹下读写更为稳妥。
然而,PICO4 Ultra系列设备的安卓操作系统为 Android 14,在使用外部存储读写操作时,Unity提供的外部文件读取方式在PICO4 Ultra设备上将失效。为此,本文使用安卓API请求外部存储权限,并封装为AAR包供Unity调用。
二、安卓交互功能封装
通过Android Studio将请求存储权限相关API封装成AAR包,以供后续Unity调用。
1、新建安卓工程
(1)创建工程
使用Android Studio创建新工程,选择为Empty Activity。
(2)选项配置
设置Name及Package name,Language选择Java。
2、创建模块
创建用于封装AAR包的模块。选中工程名,右键New-->Module。例如本项目创建名为RequestExternalStorage的模块。
3、Java类创建
(1)创建方法调用类
此类用于创建供Unity端调用的方法,具体代码如下:
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.provider.Settings;public class RequestExternalStorage {private Context mContext;private static RequestExternalStorage mRequestExternalStorage = null;private RequestExternalStorage(Context context){this.mContext = conte