gpt4 book ai didi

java - 在 Android 应用程序中使用系统 PIN 对话框

转载 作者:IT老高 更新时间:2023-10-28 20:42:07 31 4
gpt4 key购买 nike

背景

我正在尝试编写一个如下所述的应用程序。

  • 当用户启动应用程序时,它会检查用户是否在其设备上注册了 PIN。
  • 如果用户已注册 PIN,应用程序必须显示“使用 PIN 继续”按钮。
  • 当用户按下“使用 PIN 继续”按钮时,系统标准 PIN 对话框必须出现。 enter image description here
  • 用户输入他的 PIN 并按“继续”按钮。
  • 系统必须检查输入的 PIN 是否正确并继续工作。

搜索

我进行了一些搜索,并在 stackoverflow 上找到了一些文章和其他说“ There is no way to develop a new custom unlock mechanism on a non-rooted phone. ”或“I would be surprised if you could, because then you would be probably able to steal the pin code, and I don't think anyone would want that.”的互联网来源。

我还看过一些视频教程,例如 Tutorial: Android Internals - Building a Custom ROM, Pt. 1 of 2Tutorial: Android Internals - Building a Custom ROM, Pt. 2 of 2 .

已编辑

我今天进行了一些搜索,发现了一件非常有趣的事情,我认为我的解决方案是正确的,我想与你分享我的想法。因此,在查看 android 源代码时,我发现了一个有趣的文件 ChooseLockPassword.java (packages\apps\Settings\src\com\android\settings) 和LockPatternUtils.java (*frameworks\base\core\java\com\android\internal\widget*) 现在我对:

问题

如何从我的代码中调用 LockPatternUtils 类函数?或者为什么我在 Eclipse 中看不到该功能?


决定

所以我认为访问 Android 系统 PIN 对话框 的唯一方法是 root 手机对系统文件进行一些更改并使用 系统 PIN 拨号


问题

  1. 谁能给我提供有用的链接,让我可以访问 root 手机中的系统 PIN 对话框。
  2. 我的方法是否正确,我可以通过这种方式解决我的问题吗?
  3. 如果有人遇到这样的问题,请帮我解决。

有什么解决办法吗?

最佳答案

好的,我已经解决了这个问题,现在我想和你分享我的解决方案。

起初我告诉过我有 android 源,所以我对 android 源进行了一些更改,以访问 PIN 和 Pattern 对话框。他们在这里:

~\AndroidSources\pakages\apps\Settings\AndroidManifest.xml 我已经更改了以下代码行

<activity android:name="ConfirmLockPattern"
android:exported="true"> // This line was added by me.
</activity>

<activity android:name="ConfirmLockPassword"
android:exported="true" // This line was added by me.
android:them="@android:style/Them.NoTitleBar">
</activity>

<activity android:name="ChooseLockPattern"
android:exported="true" // This line was added by me.
android:label="@string/lockpattern_change_lock_pattern_label">
</activity>

此修改允许我调用“ConfirmLockPattern”、“ConfirmLockPassword”和“< em>ChooseLockPattern”来 self 自己的应用程序的 Activity 。在我编译android源代码并在我的模拟器上启动system.img之后。

在我的应用程序中,我编写了以下函数来调用“ConfirmLockPattern”或“ChooseLockPattern” Activity :

/**
* Show PIN/Password confirmation dialog.
*/
void ShowConfirmLockPINActivity() {
CustomLog.i(TAG, "Show Confirm Lock PIN Activity");
Intent intent = new Intent(Intent.ACTION_RUN);
intent.setComponent(new ComponentName("com.android.settings",
"com.android.settings.ConfirmLockPassword"));
startActivityForResult(intent, mRequestCode);
} /* ShowConfirmLockPINActivity() */

/**
* Show set PIN/Password dialog.
*/
void ShowSetLockPINActivity() {
CustomLog.i(TAG, "Show Set Lock PIN Activity");
Intent intent = new Intent(Intent.ACTION_RUN);
intent.setComponent(new ComponentName("com.android.settings",
"com.android.settings.ChooseLockPassword"));
startActivityForResult(intent, mRequestCode);
} /* ShowSetLockPINActivity() */

/**
* Show Pattern Confirmation dialog.
*/
void ShowSetLockPatternActivity() {
CustomLog.i(TAG, "Show Set Lock Pattern Activity");
Intent intent = new Intent(Intent.ACTION_RUN);
intent.setComponent(new ComponentName("com.android.settings",
"com.android.settings.ConfirmLockPattern"));
startActivityForResult(intent, mRequestCode);
} /* ShowSetLockPatternActivity() */

关于java - 在 Android 应用程序中使用系统 PIN 对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10106837/

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