Android6.0 Home定制

■目标

定制自己的HOME适应车载中控屏幕

■案1

将系统的HOME删除掉。将自建的APK植入。

■案1效果

     试验成功。但是对于用户自己再次下载的自定义HOME无能无力。

原HOME叫Launcher2,直接将此apk删除掉,放入自己编译好的APK到priv-app即可。

■案2

建立新的intent HOME类别。系统调用时全部改为调用该私有类别。

■案2效果

试验成功。用户即便下载自定义的HOME APP,由于类别不符,一律失效。

经验点:

  • framework下遍历所有文件,找到Home类别相关的源代码,一律替换为私有类别。
  • 由于intent中追加了新的类别,sdk发生了变更。编译前需要执行update-api命令。
  • 其中test目录下的Home类别相关的源代码修改了编译报错,机制未深入调查,test目录下改回去没动不影响。
  • core.mk中记录了所有要编译的模块,如果要加入自定义的apk源码,该文件中也需要追加编译目录。
  • 修改完成后,模拟器启动过程中报莫名错误。貌似在自定义apk中加入权限代码,问题解决。
   <permission

        android:name="com.android.launcher.permission.PRELOAD_WORKSPACE"

        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"

        android:protectionLevel="signatureOrSystem" />

    <permission

        android:name="com.android.launcher.permission.INSTALL_SHORTCUT"

        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"

        android:protectionLevel="dangerous" />

    <permission

        android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"

        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"

        android:protectionLevel="dangerous"/>

    <permission

        android:name="com.android.launcher.permission.READ_SETTINGS"

        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"

        android:protectionLevel="normal"/>

    <permission

        android:name="com.android.launcher.permission.WRITE_SETTINGS"

        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"

        android:protectionLevel="signatureOrSystem"/>
    <uses-permission android:name="android.permission.CALL_PHONE" />

    <uses-permission android:name="android.permission.SET_WALLPAPER" />

    <uses-permission android:name="android.permission.SET_WALLPAPER_HINTS" />

    <uses-permission android:name="android.permission.VIBRATE" />

    <uses-permission android:name="android.permission.BIND_APPWIDGET" />

    <uses-permission android:name="android.permission.GET_ACCOUNTS" />

    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />

    <uses-permission android:name="com.android.launcher.permission.WRITE_SETTINGS" />
时间: 2024-10-14 14:18:44

Android6.0 Home定制的相关文章

在Ubuntu Server14.04上编译Android6.0源码

此前编译过Android4.4的源码,但是现在Android都到了7.0的版本,不禁让我感叹Google的步伐真心难跟上,趁这周周末时间比较充裕,于是在过去的24小时里,毅然花了9个小时编译了一把Android6.0的源码,但是昨天编译完之后已经很晚了,没来得及记录编译的步骤,今天才慢悠悠地来记录一下我在Ubuntu Server14.04上编译Android6.0源码的步骤.好了,废话不多说,我们开始吧! 步骤一: 安装Ubuntu系统.我们既可以通过虚拟机的方式安装Ubuntu,也可以直接在

Android6.0系统添加那些新特性

??? 北京时间9月30日凌晨在美国旧金山举行2015年秋季新品公布会.在公布会上代号为"Marshmallow(棉花糖)"的安卓6.0系统正式推出.新系统的总体设计风格依旧保持扁平化的MeterialDesign风格. Android6.0在对软件体验与执行性能上进行了大幅度的优化.安卓权限系统被又一次设计了. ??? 全新的Android M相比眼下的Android Lollipop(5.0)有二十项重大的改进: ? ? 原文博客请參考:点击打开链接 ??? 一:App Permi

Android6.0 源码修改之 仿IOS添加全屏可拖拽浮窗返回按钮

前言 之前写过屏蔽系统导航栏功能的文章,具体可看Android6.0 源码修改之屏蔽导航栏虚拟按键(Home和RecentAPP)/动态显示和隐藏NavigationBar 在某些特殊定制的版本中要求完全去掉导航栏,那么当用户点进一些系统自带的应用界面如设置.联系人等,就没法退出了,虽然可以在actionBar中添加back按钮,但总不能每一个app都去添加吧.所以灵机一动我们就给系统添加一个全屏可拖拽的浮窗按钮,点击的时候处理返回键的逻辑.它大概长这样(审美可能丑了点,你们可以自由发挥) 图1

Android6.0使用BaiDu地图SDK动态获取定位权限

1.报错原因: 在集成百度地图SDK的时候在手机上无法定位,检查没有任何错误,最后通过搜索才知道是Android版本为6.0的问题,这是因为在Android6.0采用了运行时权限(RuntimePermissions),Android6.0的权限一般分为两种,一种时普通权限,可以直接获取,其它的运行时权限,需要提示用户手动同意之后,才能获取. 失败的原因就是,小米手机MIUI是Android6.0.1,如果不加动态获取权限的代码,是不会提示的,没有得到权限,当然无法定位. 2.解决代码: pri

Android6.0获取权限

照着<第一行代码>打代码,然并卵,感叹技术进步的神速.最后提醒一点:IT类的书籍一定要注意出版时间!出版时间!出版时间!重要的事情说三遍 问题出在android6.0的权限获取问题上,以前只要在Manifest.xml一次性获取便可以了,android6.0之后要手动去获得运行时权限才行. 1. 新增的api ContextCompact.checkSelfPermission()--->检查是否有权限 ActivityCompat.requestPermission()--->去

Android6.0机型上调用系统相机拍照返回的resultCode值始终等于0的问题

版权声明:本文为博主原创文章,未经博主允许不得转载. 正常情况下调用系统相机拍照: 如果拍照后点击的是“确定”图标,返回的resultCode = -1(Activity.RESULT_OK): 如果点击的是底部的“返回”键,返回的resultCode = 0(Activity.RESULT_CANCELED). 简单的调用系统相机的写法: //调用系统拍照 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); String p

Android6.0运行时权限管理

自从Android6.0发布以来,在权限上做出了很大的变动,不再是之前的只要在manifest设置就可以任意获取权限,而是更加的注重用户的隐私和体验,不会再强迫用户因拒绝不该拥有的权限而导致的无法安装的事情,也不会再不征求用户授权的情况下,就可以任意的访问用户隐私,而且即使在授权之后也可以及时的更改权限.这就是6.0版本做出的更拥护和注重用户的一大体现. 一.认知 今天我们就来学习下Android6.0的权限管理. Android6.0系统把权限分为两个级别: 一个是Normal Permiss

Android6.0触摸事件分发机制解读

本篇博文是Android触摸事件分发机制系列博文的第一篇,带领大家从全局掌握Android触摸事件分发机制.特别声明的是,本源码解读是基于最新的Android6.0版本. (一)Android6.0源码解读之View点击事件分发机制 (二)Android6.0源码解读之ViewGroup点击事件分发机制 (三)Android6.0源码解读之Activity点击事件分发机制 为什么要解读触摸事件分发机制 1.掌握View事件分发机制 2.为解决View滑动冲突提供理论支持 3.了解Android最

android6.0中的闪光灯

在android6.0中,加入了Camera相关新特性,在做开发过程中,遇到闪光灯的操作,如下: 1.导入包: import android.hardware.camera2.CameraManager; import android.hardware.camera2.CameraAccessException; 2.在onCreate函数中初始化CameraManager: camerager = (CameraManager)getSystemService(Context.CAMERA_S