在Android上以编程方式输入*#*#4636#*#*等秘密代码

在许多 Android设备上,您可以通过输入进入电话应用程序的秘密设置菜单

*#*#4636#*#*

http://technology-headlines.com/2010/09/17/4636-android-secret-codes/

还有一些其他代码.

是否也可以通过编程方式打开这个东西?

我试过这个:

Intent intent = new Intent(Intent.ACTION_CALL);    
intent.setData(Uri.parse("tel:*#*#4636#*#*"));
startActivity(intent);

但是它只是试图发起一个电话,当然失败了,挂断电话应用程序.

编辑:电话*#*#4636#*#*保存到我的联系人列表中为“未知”,但呼叫失败.事实上,密码仅在您在手机应用程序中的按钮上手动键入时才能正常工作,而不需要最终按下“呼叫”.这可能只是电话应用程序的隐藏功能,与呼叫无关?
如果是这样,可以以编程方式打开Phone应用程序,并模拟按钮上的输入.

根据这篇文章
Programmatically press a button in another appplication’s activity

这是不可能的,因为如果无根手机上的任何应用程序只能启动其他应用程序并按下某些东西,它可以接管整个设备的控制并做坏事.

这里有一些更多的细节,但我猜这个帖子有点旧,即使它的工作,它可能已经在当前的Android版本中更改:
http://mylifewithandroid.blogspot.de/2009/01/generating-keypresses-programmatically.html

那么,没有更简单的方法来输入密码?

解决方法

是否也可以通过编程方式打开这个东西?

是:

Intent in = new Intent(Intent.ACTION_MAIN);
    in.setClassName("com.android.settings","com.android.settings.TestingSettings");
    startActivity(in);

您只需要观看logcat输出即可了解此魔术组合实际打开的内容

I/ActivityManager(31362): START {act=android.intent.action.MAIN flg=0x10000000 cmp=com.android.settings/.TestingSettings} from pid 4257

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...