找半天沒找到相關的內容,自己搗鼓出來的,記錄一下。(比較可惜的是只能獲取靜態圖片,動態壁紙就不知道了咋弄了) uniapp的話還可以參考一下如何用NJS獲取手機桌面壁紙? - DCloud問答下麵DCloud_heavensoft 大佬的一個回答 : “Native.js很多類型沒有。用uts可以 ...
找半天沒找到相關的內容,自己搗鼓出來的,記錄一下。(比較可惜的是只能獲取靜態圖片,動態壁紙就不知道了咋弄了)
uniapp的話還可以參考一下如何用NJS獲取手機桌面壁紙? - DCloud問答下麵DCloud_heavensoft 大佬的一個回答 : “Native.js很多類型沒有。用uts可以 https://uniapp.dcloud.net.cn/plugin/uts-plugin.html”
完整的方法:
1 function getWallpaper () { 2 let WallpaperManager = plus.android.importClass("android.app.WallpaperManager"), 3 Base64 = plus.android.importClass('android.util.Base64'), 4 Bitmap = plus.android.importClass('android.graphics.Bitmap'), 5 ByteArrayOutputStream = plus.android.importClass('java.io.ByteArrayOutputStream'); 6 7 let Main = plus.android.runtimeMainActivity(); 8 let wallpaperManager = WallpaperManager.getInstance(Main); 9 let Drawable = wallpaperManager.getDrawable(); 10 11 let bimp = plus.android.invoke(Drawable,"getBitmap"); 12 let baos = new ByteArrayOutputStream(); 13 14 bimp.compress(Bitmap.CompressFormat.JPEG, 80, baos); 15 baos.flush(); 16 baos.close(); 17 let bitmapBytes = baos.toByteArray(); 18 let result = Base64.encodeToString(bitmapBytes, Base64.DEFAULT); 19 let src = 'data:image/jpeg;base64,' + result; 20 }
帶註釋:
function getWallpaper() { // 導入所需的 Android 類 let WallpaperManager = plus.android.importClass("android.app.WallpaperManager"), Base64 = plus.android.importClass('android.util.Base64'), Bitmap = plus.android.importClass('android.graphics.Bitmap'), ByteArrayOutputStream = plus.android.importClass('java.io.ByteArrayOutputStream'); // 獲取當前 Activity let Main = plus.android.runtimeMainActivity(); // 獲取壁紙管理器實例 let wallpaperManager = WallpaperManager.getInstance(Main); // 獲取當前壁紙的 Drawable let Drawable = wallpaperManager.getDrawable(); // 從 Drawable 中獲取 Bitmap 對象 let bimp = plus.android.invoke(Drawable, "getBitmap"); // 創建一個位元組數組輸出流 let baos = new ByteArrayOutputStream(); // 將 Bitmap 壓縮為 JPEG 格式,壓縮質量為 80%,並寫入到位元組數組輸出流中 bimp.compress(Bitmap.CompressFormat.JPEG, 80, baos); // 刷新輸出流 baos.flush(); // 關閉輸出流 baos.close(); // 將輸出流中的數據轉換為位元組數組 let bitmapBytes = baos.toByteArray(); // 對位元組數組進行 Base64 編碼 let result = Base64.encodeToString(bitmapBytes, Base64.DEFAULT); let src = 'data:image/jpeg;base64,' + result; }