unity刷新android相册,unity3d 在安卓平台下通知安卓个更新相册

痛苦的开端

在制作的过程中,在unity3D中截图以后,完成了保存到手机的操作,在手机的相应位置可以找到图片,却没法再安卓手机的相册中看到图片,在重启手机后,能够在相册中看见图片,思来想去,应该是安卓系统没有通知相册更新,所以相册不知道有新的图片添加进来了,通过各种寻找终于找到了实现的方法。

在此感谢

public class Test

{

private static Test instance;

private static Context unityContext;

private static Activity unityActivity;

private Test(){}

public static Test GetInstance(Context paramContext)

{

if(instance == null)

instance = new Test();

unityContext = paramContext.getApplicationContext();

unityActivity = (Activity) paramContext;

return instance;

}

public void RefreshPhoto(String fileName)

{

MediaScannerConnection msc=new MediaScannerConnection(unityContext,new MediaScannerConnection.MediaScannerConnectionClient(){

@Override

public void onMediaScannerConnected() {

// TODO Auto-generated method stub

}

@Override

public void onScanCompleted(String path, Uri uri) {

// TODO Auto-generated method stub

}

});

msc.connect();

try {

Thread.sleep(16); // 停顿一帧的时候,让系统有足够的时间完成通知

}

catch (InterruptedException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

msc.scanFile(fileName, null);

msc.disconnect();

}

}

在AndroidStudio中编写测试完成代码后,发布成jar文件,然后导入到unity中操作,如果和我一样对于安卓不熟悉的可以参考

438fdbc7bdfb?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

QQ图片20171025164849.png

AndroidJavaClass ajc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");

AndroidJavaObject ajo = ajc.GetStatic("currentActivity");

AndroidJavaClass tjc = new AndroidJavaClass("com.js.test.test.Test");

AndroidJavaObject jo = tjc.CallStatic("GetInstance", ajo);

jo.Call("RefreshPhoto", photoFullName);

通过如上代码调用RefreshPhoto的方法,实现unity通知系统更新相册。

PS:

本人新手一枚,此处留点痕迹,防止日后遗忘之时,可以查看,如果有不妥的地方,还望大佬不吝指教,小弟虚心受之。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值