unity3d 在安卓平台下通知安卓个更新相册

痛苦的开端

       在制作的过程中,在unity3D中截图以后,完成了保存到手机的操作,在手机的相应位置可以找到图片,却没法再安卓手机的相册中看到图片,在重启手机后,能够在相册中看见图片,思来想去,应该是安卓系统没有通知相册更新,所以相册不知道有新的图片添加进来了,通过各种寻找终于找到了实现的方法。
    在此感谢小杨在玩ios的 Unity3d Android SDK接入解析这个系列的文章,给了我很大的启发,由于对于安卓的开发不是很熟悉,这文章给了我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中操作,如果和我一样对于安卓不熟悉的可以参考壹米玖坤VR讲师Unity5与Android交互通信(使用Android Studio2.4) 详细操作
c#部分
在unity中把打包的文件放在Pluings->Android->libs下,

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:

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

你可能感兴趣的