Android4.1:如何把一个应用添加到Settings列表中...
2012-09-17 17:02
295 查看
1.在资源文件:packages/apps/Settings/res/xml/settings_headers.xml 中添加对应的应用列表
[Code]
<?xml version="1.0" encoding="utf-8"?>
<preference-headers
xmlns:android="http://schemas.android.com/apk/res/android">
:
<!-- Language -->
<header
android:id="@+id/language_settings"
android:fragment="com.android.settings.inputmethod.InputMethodAndLanguageSettings"
android:icon="@drawable/ic_settings_language"
android:title="@string/language_settings" />
<!-- MyApp -->
<header
android:key="my_app"
android:id="@+id/myapp_settings"
android:icon="@drawable/ic_settings_myapp"
android:title="@string/myapp_settings_title" >
<intent
android:action="android.intent.action.MAIN"
android:targetPackage="com.test.my.app"
android:targetClass="com.test.my.app.MyAppActivity"/>
</header>
:
</preference-headers>
其中涉及到的icon ,title(string)添加对应的res/drawable-hdpi , res/values/Strings.xml
2.在Code为添加的列表注册事件:packages/apps/Settings/src/com/android/settings/Settings.java
[Code]
:
private static final String MYAPP_PACKAGE = "com.test.my.app";
private static final String MYAPP_CLASS_NAME = "com.test.my.app.MyAppActivity";
:
private void updateHeaderList(List<Header> target) {
int i = 0;
while (i < target.size()) {
Header header = target.get(i);
// Ids are integers, so downcasting
int id = (int) header.id;
if (id == R.id.dock_settings) {
:
} else if (id == R.id.myapp_settings){
// If we don't have an MyApp APK, remove that option
Intent myappIntent = new Intent();
myappIntent.setClassName(MYAPP_PACKAGE, MYAPP_CLASS_NAME);
myappIntent.setAction(Intent.ACTION_MAIN);
PackageManager pm = getPackageManager();
List<ResolveInfo> myappApks = pm.queryIntentActivities(myappIntent, 0);
if(myappApks == null || myappApks.isEmpty()) {
target.remove(header);
}
}
:
}
3.修改完之后: make Settings
source build/envsetup.sh
lunch [选择 XXX ]
mmm package/apps/Settings
adb push out/target/product/XXX/system/app/Settings.apk system/app
...Test....Debug...T....D....T...
[End]
-Hope can help you-
[Code]
<?xml version="1.0" encoding="utf-8"?>
<preference-headers
xmlns:android="http://schemas.android.com/apk/res/android">
:
<!-- Language -->
<header
android:id="@+id/language_settings"
android:fragment="com.android.settings.inputmethod.InputMethodAndLanguageSettings"
android:icon="@drawable/ic_settings_language"
android:title="@string/language_settings" />
<!-- MyApp -->
<header
android:key="my_app"
android:id="@+id/myapp_settings"
android:icon="@drawable/ic_settings_myapp"
android:title="@string/myapp_settings_title" >
<intent
android:action="android.intent.action.MAIN"
android:targetPackage="com.test.my.app"
android:targetClass="com.test.my.app.MyAppActivity"/>
</header>
:
</preference-headers>
其中涉及到的icon ,title(string)添加对应的res/drawable-hdpi , res/values/Strings.xml
2.在Code为添加的列表注册事件:packages/apps/Settings/src/com/android/settings/Settings.java
[Code]
:
private static final String MYAPP_PACKAGE = "com.test.my.app";
private static final String MYAPP_CLASS_NAME = "com.test.my.app.MyAppActivity";
:
private void updateHeaderList(List<Header> target) {
int i = 0;
while (i < target.size()) {
Header header = target.get(i);
// Ids are integers, so downcasting
int id = (int) header.id;
if (id == R.id.dock_settings) {
:
} else if (id == R.id.myapp_settings){
// If we don't have an MyApp APK, remove that option
Intent myappIntent = new Intent();
myappIntent.setClassName(MYAPP_PACKAGE, MYAPP_CLASS_NAME);
myappIntent.setAction(Intent.ACTION_MAIN);
PackageManager pm = getPackageManager();
List<ResolveInfo> myappApks = pm.queryIntentActivities(myappIntent, 0);
if(myappApks == null || myappApks.isEmpty()) {
target.remove(header);
}
}
:
}
3.修改完之后: make Settings
source build/envsetup.sh
lunch [选择 XXX ]
mmm package/apps/Settings
adb push out/target/product/XXX/system/app/Settings.apk system/app
...Test....Debug...T....D....T...
[End]
-Hope can help you-
相关文章推荐
- Android4.1:如何把一个应用添加到Settings列表中...
- Android:如何把一个应用添加到Settings列表中...
- 如何在系统应用中添加一个没有源码只有apk文件的应用模块
- Launcher3如何给桌面添加一页,并显示一个应用
- javascript操作两个选择列表(有两个列表,如何实现在一个列表通过双击和多选列表中内容添加到另一个列表. )
- 使用JS,如何给下拉列表动态的添加一个option 选项?
- Android高级控件(五)——如何打造一个企业级应用对话列表,以QQ,微信为例
- Android 7.0 如何将应用添加设置列表
- Android高级控件(五)——如何打造一个企业级应用对话列表,以QQ,微信为例
- WSS3SDK之:如何在多个网站中添加或删除一个列表
- [Android]如何做一个崩溃率少于千分之三噶应用app--章节列表
- 如何把一个文本列表添加到 TListBox 并避免重复项 - 回复 "xnlxw" 的问题
- 如何给一个应用添加一个StartView动画呢?
- Android 在一个应用中如何启动另外一个已安装的应用
- ExtJs中如何动态添加一个textfield的文本框
- 请教一个问题,Android应用运行时在调用某个API(比如相机)时,系统如何判断这个应用是否具备相应的权限?
- Android下如何写出一个需要Root应用的程式
- 如何在一个页面添加多个不同的kindeditor编辑器
- LLVM每日谈之十四 如何给Clang添加一个属性
- 如何手动添加一个数据库实例