参考?http://griffinshi.iteye.com/blog/576354
?
不说啥了:代码来自于?$ANDROID_SOURCE/packages/apps/Settings?
?
AndroidManifest.xml
?
<activity android:name="TestingSettings" android:label="@string/testing"><intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.DEFAULT"/></intent-filter></activity><receiver android:name="TestingSettingsBroadcastReceiver"><intent-filter><action android:name="android.provider.Telephony.SECRET_CODE"/><data android:scheme="android_secret_code" android:host="4636"/></intent-filter></receiver>
?TestingSettingsBroadcastReceiver.java
?
?
package com.android.settings;import android.provider.Telephony;import static android.provider.Telephony.Intents.SECRET_CODE_ACTION;import android.content.Context;import android.content.Intent;import android.content.BroadcastReceiver;import android.util.Config;import android.util.Log;import android.view.KeyEvent;public class TestingSettingsBroadcastReceiver extends BroadcastReceiver { public TestingSettingsBroadcastReceiver() { } @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(SECRET_CODE_ACTION)) { Intent i = new Intent(Intent.ACTION_MAIN); i.setClass(context, TestingSettings.class); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); } }}
?TestSettings.java
?
/* * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package com.android.settings;import android.os.Bundle;import android.preference.PreferenceActivity;public class TestingSettings extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.testing_settings); }}?
拨号盘输入 *#*#4636#*#* 就会启动?TestSettings Activity
1 楼 fanfq 2011-01-19
Android暗码启动是神码东西啊?求解。谢谢。
2 楼 shaobin0604 2011-01-23
fanfq 写道
Android暗码启动是神码东西啊?求解。谢谢。
看这个链接 http://griffinshi.iteye.com/blog/576354
3 楼 jordan8824 2012-03-06
TestSettings.java 是干什么用的,谁来调用。另外R.xml.testing_settings如果是自己的写什么内容。不太明白
4 楼 shaobin0604 2012-03-06
jordan8824 写道
TestSettings.java 是干什么用的,谁来调用。另外R.xml.testing_settings如果是自己的写什么内容。不太明白
具体的设置界面Activity, TestingSettingsBroadcastReceiver 收到广播之后会启动 TestSettings。
5 楼 jordan8824 2012-03-07
我作了一个关于暗码启动程序的例子,但是遇到了几个问题,不知到你能不能帮助我解决:
我的要求是,这个程序是后台运行,只能通过暗码启动,也就是说在程序列表里隐藏图标。那么我知道需要在manifest.xml中去掉以下两句话。
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
但是,问题出来了,这样子安装apk后,程序在任务管理器中是处于“停止状态的”,我发现他接受不到广播。所以无法实现该功能。
程序的代码跟你写思路一样,只不过TestSettings.java类,我没继承自PreferenceActivity类,没用到addPreferencesFromResource(这里我也不知到你为什么这么用,而不是继承activity),就是自己定义的正常一个activity。
希望得到你的帮助
我的要求是,这个程序是后台运行,只能通过暗码启动,也就是说在程序列表里隐藏图标。那么我知道需要在manifest.xml中去掉以下两句话。
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
但是,问题出来了,这样子安装apk后,程序在任务管理器中是处于“停止状态的”,我发现他接受不到广播。所以无法实现该功能。
程序的代码跟你写思路一样,只不过TestSettings.java类,我没继承自PreferenceActivity类,没用到addPreferencesFromResource(这里我也不知到你为什么这么用,而不是继承activity),就是自己定义的正常一个activity。
希望得到你的帮助
6 楼 shaobin0604 2012-03-07
jordan8824 写道
我作了一个关于暗码启动程序的例子,但是遇到了几个问题,不知到你能不能帮助我解决:
我的要求是,这个程序是后台运行,只能通过暗码启动,也就是说在程序列表里隐藏图标。那么我知道需要在manifest.xml中去掉以下两句话。
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
但是,问题出来了,这样子安装apk后,程序在任务管理器中是处于“停止状态的”,我发现他接受不到广播。所以无法实现该功能。
程序的代码跟你写思路一样,只不过TestSettings.java类,我没继承自PreferenceActivity类,没用到addPreferencesFromResource(这里我也不知到你为什么这么用,而不是继承activity),就是自己定义的正常一个activity。
希望得到你的帮助
我的要求是,这个程序是后台运行,只能通过暗码启动,也就是说在程序列表里隐藏图标。那么我知道需要在manifest.xml中去掉以下两句话。
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
但是,问题出来了,这样子安装apk后,程序在任务管理器中是处于“停止状态的”,我发现他接受不到广播。所以无法实现该功能。
程序的代码跟你写思路一样,只不过TestSettings.java类,我没继承自PreferenceActivity类,没用到addPreferencesFromResource(这里我也不知到你为什么这么用,而不是继承activity),就是自己定义的正常一个activity。
希望得到你的帮助
有代码吗?我看一下
7 楼 fanfq 2012-03-07
shaobin0604 写道
fanfq 写道
Android暗码启动是神码东西啊?求解。谢谢。
看这个链接 http://griffinshi.iteye.com/blog/576354
哈哈知道了,我也在项目中用到过这样的功能,不过是在项目的中的输入框里面输入特定的字符打开隐藏功能。类似于后台程序。
至于你的方案我可以理解为通过拨号程序输入指定字符,然后通过广播的方式触发自己写的程序。但前提是自己的程序一直处于运行态,可以这么理解吧。
8 楼 jordan8824 2012-03-07
给你发邮件了,请查收。
9 楼 fengchenfuzi 2012-03-27
R.xml.testing_settings里面写的是什么啊
10 楼 fengchenfuzi 2012-03-27
能不能粘贴出来参考一下呢