RK3288 android7.1.2 更换默认开机壁纸

1.添加自定义图片:c_wallpaper.png

路径:frameworks\base\core\res\res\drawable-nodpi\c_wallpaper.png

路径:frameworks\base\core\res\res\drawable-sw600dp-nodpi\c_wallpaper.png

路径:frameworks\base\core\res\res\drawable-sw720dp-nodpi\c_wallpaper.png

2.在symbols.xml 添加资源声明

路径:frameworks\base\core\res\res\values\symbols.xml

  <java-symbol type="drawable" name="c_wallpaper" />  
  <java-symbol type="drawable" name="default_wallpaper" />
  <java-symbol type="drawable" name="default_lock_wallpaper" />

3.修改WallpaperManager.java的openDefaultWallpaper 资源引用

路径:frameworks\base\core\java\android\app\WallpaperManager.java

public static InputStream openDefaultWallpaper(Context context, @SetWallpaperFlags int which) {
        final String whichProp;
        final int defaultResId;
        if (which == FLAG_LOCK) {
            /* Factory-default lock wallpapers are not yet supported
            whichProp = PROP_LOCK_WALLPAPER;
            defaultResId = com.android.internal.R.drawable.default_lock_wallpaper;
            */
            return null;
        } else {
            whichProp = PROP_WALLPAPER;
            //defaultResId = com.android.internal.R.drawable.default_wallpaper;
            //更新成自定义的图片资源
            defaultResId = com.android.internal.R.drawable.c_wallpaper;
        }
        final String path = SystemProperties.get(whichProp);
        if (!TextUtils.isEmpty(path)) {
            final File file = new File(path);
            if (file.exists()) {
                try {
                    return new FileInputStream(file);
                } catch (IOException e) {
                    // Ignored, fall back to platform default below
                }
            }
        }
        try {
            return context.getResources().openRawResource(defaultResId);
        } catch (NotFoundException e) {
            // no default defined for this device; this is not a failure
        }
        return null;
    }

4.修改WallpaperManagerService.java的getDefaultWallpaper 资源引用

路径:frameworks\base\services\core\java\com\android\server\wallpaper\WallpaperManagerService.java

       private Bitmap getDefaultWallpaper(Context context) {
            // int    defaultResId = com.android.internal.R.drawable.default_wallpaper;
            //更新为自定义墙纸图片
            int    defaultResId = com.android.internal.R.drawable.c_wallpaper;
            InputStream is =     context.getResources().openRawResource(defaultResId);
            if (is != null) {
                try {
                    BitmapFactory.Options options = new BitmapFactory.Options();
                    return BitmapFactory.decodeStream(is, null, options);
                } catch (OutOfMemoryError e) {
                    Slog.w(TAG, "Can't decode stream", e);
                } finally {
                    IoUtils.closeQuietly(is);
                }
            }
            return null;
        }

5.修改Launcher2 

路径:packages\apps\Launcher2\res\drawable-nodpi\default_wallpaper.xml

<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@*android:drawable/c_wallpaper"
    />

路径:packages\apps\Launcher2\res\drawable-nodpi\wallpaper.xml


<resources>
    <string-array name="wallpapers" translatable="false">
        <!-- This special drawable references the platform's private
             default_wallpaper resource so the user can always choose it. -->
        <item>c_wallpaper</item>

        <!-- If you want additional bitmap drawable resources to appear in the
             wallpaper picker, add them to this list. For each foo.jpg be sure
             to include a foo_small.jpg to be used as a thumbnail in the
             scrolling gallery widget. -->
    </string-array>
</resources>

6.修改DefaultWallpaperInfo.java

路径:packages\apps\WallpaperPicker\src\com\android\wallpaperpicker\tileinfo\DefaultWallpaperInfo.java

private static ResourceWallpaperInfo getPreKKDefaultWallpaperInfo(Context context) {
        Resources sysRes = Resources.getSystem();
        Resources res = context.getResources();

        //int resId = sysRes.getIdentifier("default_wallpaper", "drawable", "android");
        //修改为自定义图片资源
        int resId = sysRes.getIdentifier("c_wallpaper", "drawable", "android");
        File defaultThumbFile = getDefaultThumbFile(context);
        Bitmap thumb = null;
        boolean defaultWallpaperExists = false;
        if (defaultThumbFile.exists()) {
            thumb = BitmapFactory.decodeFile(defaultThumbFile.getAbsolutePath());
            defaultWallpaperExists = true;
        } else {
            InputStreamProvider streamProvider = InputStreamProvider.fromResource(res, resId);
            thumb = createThumbnail(
                    streamProvider, context, streamProvider.getRotationFromExif(context), false);
            if (thumb != null) {
                defaultWallpaperExists = saveDefaultWallpaperThumb(context, thumb);
            }
        }
        if (defaultWallpaperExists) {
            return new ResourceWallpaperInfo(sysRes, resId, new BitmapDrawable(res, thumb));
        }
        return null;
    }

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 7.1.2(也被称为Nougat)是Android操作系统的一个版本,它的源代码是公开可用的。源码包含了构建和运行Android操作系统所需的所有代码文件和资源。 Android操作系统是一个基于Linux内核的开源平台,用于移动设备和嵌入式系统。它提供了一个统一的操作系统环境,使开发者能够轻松地构建和定制自己的Android设备。 Android 7.1.2源码提供了一套开发工具和框架,使开发者能够创建功能丰富、稳定和安全的应用程序。该版本中引入了一些新的功能和改进,例如通知栏的增强、多任务处理的改进、Doze模式的优化等,以提供更好的用户体验。 通过查看源代码,开发者可以深入了解Android操作系统的内部工作原理,并理解其中的各个组件和模块是如何相互协作的。例如,开发者可以研究Android的用户界面框架、应用程序生命周期管理、通信和存储机制等。 修复和优化Android 7.1.2源码也是可能的,因为它是开源的。开发者可以根据自己的需求和想法对操作系统进行修改,并参与到Android社区中,与其他开发者分享和贡献代码。 总之,Android 7.1.2源码为开发者提供了一个定制和构建Android应用的平台。通过深入了解源码,开发者能够创建出更加出色和创新的应用程序,同时也有机会参与到Android开源社区中,为整个生态系统的发展做出贡献。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值