注意安卓10由于权限问题,无法直接访问dcim相册目录,谨慎使用下方法
提供扩展类
新建项目 添加android library: toastlibrary
package com.example.toastlibrary;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import java.io.File;
public class ScanFiles {
public void ScanFile(Context context, String filePath) {
Intent scanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
scanIntent.setData(Uri.fromFile(new File(filePath)));
context.sendBroadcast(scanIntent);
}
}
导出后,选择aar包里的classes.jar
放入unity
unity调用
RefreshAlbum.RefreshAlbumByMyself(mFileName); //刷新安卓相册 mFileName为图片路径
using UnityEngine;
using System.Collections;
public class RefreshAlbum
{
public static void RefreshAlbumByMyself(string photoFullName)
{
AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject context = currentActivity.Call<AndroidJavaObject>("getApplicationContext");
AndroidJavaObject jo = new AndroidJavaObject("com.example.toastlibrary.ScanFiles");
jo.Call("ScanFile", context, photoFullName);
AndroidJavaClass toast = new AndroidJavaClass("android.widget.Toast");
currentActivity.Call("runOnUiThread", new AndroidJavaRunnable(() =>
{
toast.CallStatic<AndroidJavaObject>("makeText", context, "截图成功保存到相册", toast.GetStatic<int>("LENGTH_LONG")).Call("show");
}));
}
}
网友评论