gpt4 book ai didi

android - 使用来自 android.provider.Telephony 的 SECRET_CODE

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:18:13 27 4
gpt4 key购买 nike

我想实现一个在 android 中制作 Assets 负债表的基本想法。如果我写 *#*#1234#*#*在我的拨号屏幕上,它必须简单地递增 34在我的应用程序中(或者可能在文本文件中)。为了实现这个想法,我遇到了 android.provider.Telephony.SECRET_CODE .

我想要的是读取任何数字,如 *#*#<number>#*#*从电话的拨号盘。所以我希望我的代码以某种方式运行,以便它将这种格式的任何代码识别为密码:*#*#12$$#*#* .我想很难想象它是否有任何工作方式,但如果有人知道什么,我会非常想知道。非常感谢!

最佳答案

http://blog.udinic.com/2013/05/17/create-a-secret-doorway-to-your-app

检查此链接。

这是一段示例代码。在您的 list 中,声明您的接收者并使用密码,例如:111222

<receiver android:name=".receiver.DiagnoserReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SECRET_CODE"/>
<data android:scheme="android_secret_code" android:host="111222"/>
</intent-filter>
</receiver>

然后创建接收器:

public class DiagnoserReceiver extends BroadcastReceiver {

public void onReceive(Context context, Intent intent) {
if ("android.provider.Telephony.SECRET_CODE".equals(intent.getAction())) {
//Do your increment here
}
}
}

我想如果你想要多个数字,你可以添加你的应用程序将监听的代码变体:

<intent-filter>
<action android:name="android.provider.Telephony.SECRET_CODE"/>
<data android:scheme="android_secret_code" android:host="111222"/>
<data android:scheme="android_secret_code" android:host="1234"/>
<data android:scheme="android_secret_code" android:host="1235"/>
<data android:scheme="android_secret_code" android:host="1236"/>
<data android:scheme="android_secret_code" android:host="1237"/>
</intent-filter>

编辑:

你可以试试这个SO post I found

only to match the beginning of host. The rules are these:

  • Put * as the first character of the host.
  • Write the rest of of the host until the end.
android:host="*site.com"
android:pathPattern=".*"
android:scheme="http" />

It will catch links of:

  • www.site.com
  • site.com
  • mail.site.com

所以你应该可以通配

的字体
<data android:scheme="android_secret_code" android:pathPattern="*" android:host="*34"/>

理论上它应该适用于 0034 ... 9934

**注意:**

任何人都可以反编译您的应用程序并查看 manifest 文件中的代码。所以无论你做什么,都要确保它是安全的。 IE。如果您从接收器打开一个 Activity ,请确保该 Activity 首先要求输入密码。

另一种更安全的方法是在 onCreateMainApplication 类中注册广播接收器 - 根据您的喜好添加 intentFilters,这样您的代码就不会暴露在android list 文件,但如果您的应用程序完全关闭或滑动,它将无法工作。只需打开该应用程序(等待广播接收器注册),将其最小化,输入您的代码,瞧瞧。

关于android - 使用来自 android.provider.Telephony 的 SECRET_CODE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48417245/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com