客户有些需求需要设置默认壁纸和锁屏壁纸 在默认情况下 这两个壁纸是相同的 如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改
Android13实现
替换默认桌面壁纸:
将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.* (注意不能是bmp格式)
替换默认锁屏壁纸:
将图片资源放入vendor/mediatek/proprietary/packages/apps/SystemUI/res/drawable/default_lock_wallpaper.*
--- a/alps-mp-t0/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/alps-mp-t0/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -1975,6 +1975,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
mFaceRunningState = BIOMETRIC_STATE_STOPPED;
}
+ public Context bsContext(){
+ return mContext;
+ }
+
@VisibleForTesting
@Inject
protected KeyguardUpdateMonitor(
diff --git a/alps-mp-t0/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenWallpaper.java b/alps-mp-t0/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenWallpaper.java
old mode 100644
new mode 100755
index 8793a57e4ef..c5963cec350
--- a/alps-mp-t0/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenWallpaper.java
+++ b/alps-mp-t0/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenWallpaper.java
@@ -51,9 +51,12 @@ import libcore.io.IoUtils;
import java.io.PrintWriter;
import java.util.Objects;
-
+import android.content.Context;
import javax.inject.Inject;
-
+import com.android.systemui.R;
+import java.io.IOException;
+import android.os.SystemProperties;
+import android.provider.Settings;
/**
* Manages the lockscreen wallpaper.
*/
@@ -75,7 +78,7 @@ public class LockscreenWallpaper extends IWallpaperManagerCallback.Stub implemen
// users.
private UserHandle mSelectedUser;
private AsyncTask<Void, Void, LoaderResult> mLoader;
-
+ private Context mContext;
@Inject
public LockscreenWallpaper(WallpaperManager wallpaperManager,
@Nullable IWallpaperManager iWallpaperManager,
@@ -98,6 +101,7 @@ public class LockscreenWallpaper extends IWallpaperManagerCallback.Stub implemen
Log.e(TAG, "System dead?" + e);
}
}
+ mContext=mUpdateMonitor.bsContext();
}
public Bitmap getBitmap() {
@@ -115,6 +119,27 @@ public class LockscreenWallpaper extends IWallpaperManagerCallback.Stub implemen
mCached = true;
mCache = result.bitmap;
}
+ if (mCache == null && Settings.System.getInt(mContext.getContentResolver(),"is_first_boot",-1)==-1) {
+ Settings.System.putInt(mContext.getContentResolver(),"is_first_boot",1);
+ try {
+ mWallpaperManager.setStream(
+ mContext.getResources().openRawResource(R.drawable.default_lock_wallpaper),
+ null,
+ true,
+ WallpaperManager.FLAG_LOCK);
+
+ result = loadBitmap(mCurrentUserId, mSelectedUser);
+ if (result.success) {
+ mCached = true;
+ // mUpdateMonitor.setHasLockscreenWallpaper(result.bitmap != null);
+ mCache = result.bitmap;
+ }
+ } catch (IOException e) {
+ //Log.e(TAG, "can not set default lockscreen wallpaper");
+ }
+ }
return mCache;
}
Android9实现
替换默认桌面壁纸:
将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.* (注意不能是bmp格式)
替换默认锁屏壁纸:
将图片资源放入vendor/mediatek/proprietary/packages/apps/SystemUI/res/drawable/default_lock_wallpaper11.*
--- a/ap/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenWallpaper.java
+++ b/ap/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenWallpaper.java
@@ -42,9 +42,11 @@ import android.util.Log;
import com.android.keyguard.KeyguardUpdateMonitor;
import libcore.io.IoUtils;
-
+import com.android.systemui.R;
import java.util.Objects;
-
+import java.io.IOException;
+import android.os.SystemProperties;
+import android.provider.Settings;
/**
* Manages the lockscreen wallpaper.
*/
@@ -64,10 +66,13 @@ public class LockscreenWallpaper extends IWallpaperManagerCallback.Stub implemen
// users.
private UserHandle mSelectedUser;
private AsyncTask<Void, Void, LoaderResult> mLoader;
+
+ private Context mContext;
public LockscreenWallpaper(Context ctx, StatusBar bar, Handler h) {
mBar = bar;
mH = h;
+ mContext = ctx;
mWallpaperManager = (WallpaperManager) ctx.getSystemService(Context.WALLPAPER_SERVICE);
mCurrentUserId = ActivityManager.getCurrentUser();
mUpdateMonitor = KeyguardUpdateMonitor.getInstance(ctx);
@@ -97,6 +102,27 @@ public class LockscreenWallpaper extends IWallpaperManagerCallback.Stub implemen
mUpdateMonitor.setHasLockscreenWallpaper(result.bitmap != null);
mCache = result.bitmap;
}
+ //zya add
+ if (mCache == null && Settings.System.getInt(mContext.getContentResolver(),"is_first_boot",-1)==-1) {
+ Settings.System.putInt(mContext.getContentResolver(),"is_first_boot",1);
+ try {
+ mWallpaperManager.setStream(
+ mContext.getResources().openRawResource(R.drawable.default_lock_wallpaper11),
+ null,
+ true,
+ WallpaperManager.FLAG_LOCK);
+
+ result = loadBitmap(mCurrentUserId, mSelectedUser);
+ if (result.success) {
+ mCached = true;
+ mUpdateMonitor.setHasLockscreenWallpaper(result.bitmap != null);
+ mCache = result.bitmap;
+ }
+ } catch (IOException e) {
+ //Log.e(TAG, "can not set default lockscreen wallpaper");
+ }
+ }
+ //zya end
return mCache;
}