在许多
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