Launcher: 解决添加 Settings 快捷方式 bug_序
来源:互联网 发布:东北证券炒股软件 编辑:程序博客网 时间:2024/04/29 18:28
Launcher 前段时间一直在研究,主要是客户的要求特别多,头大!
不管怎么说 Launcher 还是比较重要的,他就像 android 的一张脸,这跟《非诚勿扰》差不多,长的不好,中标的机率也不会高。呵呵,娱乐一下!
这是 android 的 bug!!!!!!
原来以为 android4.0 会解决这个问题,但是 Google 还是让人失望了一把。不过解决这个 bug 也不是很难,在后面的博文中,我会分享一下自己解决这个问题的方法,只是个人认为的办法,忘高手切莫见笑!
要想解决这个问题,首先需要知道 Launcher 添加快捷方式的原理,以及 Settings 如何响应 Launcher。
说到这里,可能要让大家失望了,因为这篇博客只是为后面解决这个 bug 做铺垫的,所以,该篇是打酱油的!
呵呵,如果你读到这篇博文,请不要生气。我会在下面分享关于 android 如何使用代码获取系统语言属性(这个很重要,是我解决这个 bug 的关键)。
使用下面代码:
// 获取语言代码
String lCode = Locale.getDefault().getLanguage();
// 获取国家码
String lCountry = Locale.getDefault().getCountry();
Log.d("mark", "lCode * lCountry = " + lCode + " * " + lCountry);
ok, 运行 app,就可以获取语言信息。比如:en_US,zh_CN,zh_TW
除了上面哪种方式之外,还有一种方式,不过需要编译 android 源码,比较复杂。如果你是做 android 源码开发的话,就不会那麽复杂!
String l = android.os.SystemProperties.get("persist.sys.language");
String c = android.os.SystemProperties.get("persist.sys.country");
Log.d("mark", "l * c = " + l + " * " + c);
看 SystemProperties 源码可以知道这个类是 hide 的,所以需要编译 android 源码。
现在说一下具体流程。
1. eclipse 新建一个 android project: DemoPro
2. 在工程目录下面新建一个 mk 文件:Android.mk
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := mark
LOCAL_PROGUARD_ENABLED := full
include $(BUILD_PACKAGE)
当然,你可以从 android 源码 package/app 中任何一个工程中 copy 一份。
注意:LOCAL_PACKAGE_NAME := mark 表示编译之后 apk名称,即 out/target/product/generic/system/app/mark.apk
特别注意:如果你的 mk 文件中有:
LOCAL_SDK_VERSION := current
请将这句注释掉,否则编译会报错。
3. 编译 app
拷贝 DemoPro 到 /packages/apps
编译:mmm -j4 /packages/apps/DemoPro
4. 安装 apk 到模拟器
adb -e install out/target/product/generic/system/app/mark.apk
5. 运行即可看到结果
如果,你有其它问题,可以参考 android 源码 PhoneBase.java 中 setSystemLocale 方法。
- Launcher: 解决添加 Settings 快捷方式 bug_序
- Android Launcher开发添加应用程序的快捷方式
- Android之快捷方式二——向Launcher添加快捷方式
- Android中实现Launcher功能之一 ----- 添加快捷方式
- (转)Android中实现Launcher功能之一 ----- 添加快捷方式
- Android中程序向桌面和Launcher添加快捷方式
- Android Launcher开发(四)Launcher概述及简单添加和删除应用程序的快捷方式
- Android Launcher开发(四)Launcher概述及简单添加和删除应用程序的快捷方式
- Android Launcher开发(四)Launcher概述及简单添加和删除应用程序的快捷方式
- Settings-快捷方式BUG
- 获取快捷方式在Launcher数据库中的信息 Failed to find provider info for com.android.launcher2.settings
- Android中程序向桌面和Launcher添加快捷方式【安卓进化三十二】
- Android Launcher开发(六)通过分析Laucher源码整理添加快捷方式的思路
- Android 开发之系统应用Launcher详解,简单添加和删除快捷方式及常见问题
- 在launcher上创建快捷方式
- 添加快捷方式
- Android Launcher桌面应用快捷方式的开发
- Android Launcher桌面应用快捷方式的开发
- IE 插件 数字签名
- 网页填表-------对于 无 元素ID和名称的元素 定位
- 女人最需要的五种食品
- java.lang.IllegalStateException: get field slot from row 0 col -1 failed
- 《C语言接口与实现》实验——任意精度算术(AP_T)
- Launcher: 解决添加 Settings 快捷方式 bug_序
- 解决SQL2OOO/2005查询不区分大小写的方法
- web框架之SSH框架的搭建
- 材质脚本分析之Examples/CelShading
- Ibatis调用Oracle存储过程
- IOS5.0 系统中 跳转至设置项的各种url链接
- edit box callback 函数控制 字符输入 matlab
- Get the First Touch on JQuery
- 给年轻程序员的几句话