当前位置: 代码迷 >> Android >> Android暗码起动
  详细解决方案

Android暗码起动

热度:33   发布时间:2016-05-01 16:22:02.0
Android暗码启动

参考?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。

希望得到你的帮助
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。

希望得到你的帮助


有代码吗?我看一下
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  
能不能粘贴出来参考一下呢
  相关解决方案