之前写过类似的文章,但是目前安卓版本并不支持读写相册路径,安卓现在的权限管理越来越像iOS了,所以就有了今天的文章,这里我会持续更新Unity调用安卓原生功能的脚本,也会有iOS的,方便之后unity调用安卓和iOS。
		
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89  | 
						package com.genimous.linjing; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.media.MediaScannerConnection; import android.net.Uri; import android.os.Build; import android.os.Environment; import android.provider.MediaStore; import android.util.Log; import android.widget.Toast; import com.unity3d.player.UnityPlayerActivity; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class UnityTools extends UnityPlayerActivity {     private static Context mContext = null;     private static Activity mainActivity = null;     public static void init(Context context) {         if (mContext == null) {             mContext = context;         }         if (mainActivity == null) {             mainActivity = (Activity) context;         }     }     // 获取App发过来的消息     public static String getAppData(String key) {         return mainActivity.getIntent().getStringExtra(key);     }     // 保存图片到相册     public static void savePhoto(String folder, String fileName) {         mainActivity.runOnUiThread(new Runnable() {             public void run() {                 String filePath = Environment                         .getExternalStorageDirectory()                         + "/Android/data/" + mContext.getPackageName() + "/files/" + folder;                 Bitmap bitmap = BitmapFactory.decodeFile(filePath + "/" + fileName);                 // 首先保存图片                 File file = new File(filePath, fileName);                 try {                     FileOutputStream fos = new FileOutputStream(file);                     bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);                     fos.flush();                     fos.close();                 } catch (FileNotFoundException e) {                     e.printStackTrace();                 } catch (IOException e) {                     e.printStackTrace();                 }                 bitmap.recycle();//扫描保存的图片                 // 其次把文件插入到系统图库                 try {                     MediaStore.Images.Media.insertImage(mContext.getContentResolver(),                             file.getAbsolutePath(), folder + "/" + fileName, null);                 } catch (FileNotFoundException e) {                     e.printStackTrace();                 }                 // 最后通知图库更新                 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { // 判断SDK版本是否是4.4或者高于4.4                     String[] paths = new String[]{file.getAbsolutePath()};                     MediaScannerConnection.scanFile(mContext, paths, null, null);                 } else {                     final Intent intent;                     if (file.isDirectory()) {                         intent = new Intent(Intent.ACTION_MEDIA_MOUNTED);                         intent.setClassName("com.android.providers.media", "com.android.providers.media.MediaScannerReceiver");                         intent.setData(Uri.fromFile(Environment.getExternalStorageDirectory()));                     } else {                         intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);                         intent.setData(Uri.fromFile(file));                     }                     mContext.sendBroadcast(intent);                 }                 Toast.makeText(mContext, "截图已保存到相册", Toast.LENGTH_SHORT).show();             }         });     } }  | 
					
这个脚本需要先调用一下init,将Unity的Activity初始化一下,然后就可以调用这个脚本里的方法了,这里用到了Android的MediaStore的api,这个api不需要获取权限,这是系统的方法,可以将其他路径的媒体资源移动到系统固定的资源路径下。
后续新的功能会持续更新到这个脚本里文章源自大腿Plus-https://www.zhaoshijun.com/archives/1732 文章源自大腿Plus-https://www.zhaoshijun.com/archives/1732
					我的微信
				
				微信扫一扫
				
					shijun_z
					
					我的QQ
				
				QQ扫一扫
				
					846207670
					
							
评论