如何防止android应用程序中的choosePrivateKeyAlias对话框?

2023-11-30

我有一个 Android 应用程序,可以在网络视图中调用安全网站。 webview 检索证书并将其提供给网站。

我必须使用KeyChain.choosePrivateKeyAlias(this, keyChainAliasCallback, null, null, null, -1, CERT_ALIAS);方法,这会显示一个像这样的对话框

certificate select

我只想在用户第一次使用该应用程序时显示此窗口,但我不知道是否可行。

我看到关于使用设备/所有者配置文件拦截此内容。这是否意味着它应该在 android 上工作?对我来说有点模糊。

另一个解决方案是将证书和私钥保存在任何其他应用程序或用户都无法访问的地方。我考虑私有模式下的 SharedPreferences。

我错了吗 ?

感谢您的回答 !


我不确定解决这个问题的最佳方法,但这就是我所做的,对我来说效果很好。

我在首选项中检查了一个布尔变量,如果它返回 false,我会显示choosePrivateKeyAlias窗户。如果返回 true,我就知道我有权直接检索证书,因此无需显示弹出窗口。

boolean isGranted = prefs.getBoolean("MY_CERT", false);
if(!isGranted) {
        //Get cert and private key from internal android store
        KeyChainAliasCallback keyChainAliasCallback = new KeyChainAliasCallback() {
            @Override
            public void alias(@Nullable String s) {
                Log.d(TAG, "selected alias = " + s);
                SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
                editor.putBoolean("MY_CERT", true);
                editor.commit();
                retriveCertsTask.execute();
            }
        };
        KeyChain.choosePrivateKeyAlias(mActivity, keyChainAliasCallback, null, null, null, -1, CERT_ALIAS);
    } else {
        // Retrieve certs an private key
        retriveCertsTask.execute();
    }
}

希望能帮助到你...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何防止android应用程序中的choosePrivateKeyAlias对话框? 的相关文章

  • Android 中所有活动的单套接字 IO 连接

    我已经为 SocketIOClient 参考创建了 Singleton 类here https stackoverflow com questions 13709783 android socket io switch activities
  • 改造中如何使用HashMap发布数据?

    您能解释一下如何使用以下方式发布数据吗hashmap in 改造2 这就是我发的帖子 FormUrlEncoded POST getProfile Call
  • 订阅购买后失效日期无效

    我有一个带有应用内订阅的 Android 应用程序 用户购买订阅后 我通过 Google API 通过我们的后端请求 validUntilTimestampMsec 和 initiationTimestampMsec 返回的时间戳 init
  • Android 上的多处理

    我一直在 Android 上执行一些测试 以验证并行化算法 如 FFT 的性能可以提高多少 我通过使用带有 JNI FFTW 的 pthread 和 Java 线程 来自 JTransforms 来实现这些算法 我没有像预期那样通过使用线程
  • 从ndk中的不同线程调用java方法

    我正在尝试使用 android 的 NDK 从 C 中的独立线程调用 java 静态方法 到目前为止我已经 JNIEnv env AttachJava jclass cls2 env gt FindClass com actvt showd
  • Android 模拟器在 Windows 7 64 位上崩溃

    我是一名 Android 开发新手 到目前为止只在我的 Android 手机上运行了 Hello World 当我尝试在模拟器模式下运行我的应用程序时 我看到带有键盘和接听 挂断按钮的模拟器窗口 但在我的应用程序运行之前我收到一个窗口对话框
  • SDK 管理器缺少模拟器的旧版 Android 系统映像

    我刚刚重新安装了 ADT 捆绑包 20130522 和 Android Studio 因为我的 eclipse 安装再次搞砸了 但那是另一个故事了 在任一版本中 当我启动 SDK Manager 时 都没有任何 2 2 的系统映像 只有 2
  • Gradle 构建过程失败

    我的项目正在成功构建 突然我在 Android studio 中收到以下错误 无法找到方法 org gradle api publish maven internal publication MavenPublicationInternal
  • 如何将webview内容划分为多个页面

    我必须使用 Android 上的 PdfDocument 从 webView 创建 PDF https developer android com reference android graphics pdf PdfDocument htm
  • Ionic4 电容器 android livereload?

    是否有可能在带有 livereload 的 Android 设备上运行带有电容器的 ionic 4 应用程序 我已经找了几个小时的答案了 但没有成功 请帮忙 如果使用最新版本 ionic cli 现在有一个命令ionic capacitor
  • 定时器时间不作为变量改变?

    这是我的代码 private int V Time 1 try final Timer V Timer final Handler V Handler V Timer new Timer V Handler new Handler Loop
  • Android 信号 11 (SIGSEGV),代码 1 (SEGV_MAPERR) libwebviewchromium.so

    对于 android 4 4 我多次收到 Native crash at system lib libwebviewchromium so 错误 以下是设备包括 Xperia Z1 SO 01F 16 30 2 Galaxy Tab4 7
  • 在 Unity 中构建 apk 应用程序时包含文件

    在unity中构建apk文件时如何将文件和文件夹添加到apk文件中 我需要的是在Android上安装应用程序后 在应用程序的父目录 android data com company product files 中存在一些文件和文件夹 这是我
  • 标签栏随键盘一起上升

    这个问题之前已经发过 但是没有答案 Problem TabBar gt 2 个选项卡 选项卡一有一个Scrollview and an EddiText 标签二 其他 贴带时EditText 软键盘上升 TabBar与它一起 一个丑陋的解决
  • 从字符串中删除重音符号

    Android 中有没有什么方法 据我所知 没有 java text Normalizer 可以从字符串中删除任何重音 例如 变成 eau 如果可能的话 我想避免解析字符串来检查每个字符 java text NormalizerAndroi
  • React Native v0.71.8 React-native-vector-icons 你看不到的图标

    我在用react native版本v0 71 8 我安装了react native vector icons库 但图标未显示 似乎链接在最新版本的 React Native 中不再起作用 所以我按照说明进行操作 但它不再编译 出现以下错误
  • 如何在捆绑中存储稀疏数组

    我有一个SparseArray
  • Meteor:即使设置了 ANDROID_HOME 也未设置

    操作系统 Ubuntu 14 04 框架 流星1 1 0 2 应用名称 Songofy 这是输出meteor install sdk android meteor install sdk android Found Android bund
  • 如何像UCBrowser一样使用webview打开url

    我是安卓新手 我正在尝试制作一个示例应用程序来在 webview 中打开网站 问题是 网站以桌面模式打开 如何才能像UC浏览器 手机模式 一样打开网站 尝试这个 它应该有效 webview1 getSettings setJavaScrip
  • 调用外部应用程序

    如何从我的应用程序调用外部应用程序 例如 我需要打电话Shazam 应用程序 来自我的应用程序 我可以在应用程序的包名称中看到logcat 这对任何目的都有用吗 特别是对于 Shazam 以下代码有效 Intent intent new I

随机推荐

  • 从java中的字符串中修剪换行符

    以下程序的输出 public class TestClass public static void main final String args String token null n token trim System out print
  • 通过服务器请求防止 Android 盗版

    我正在开发一个需要服务器来完成大部分繁重工作的应用程序 我想防止盗版客户端向该服务器发送请求 有没有办法在请求中发送一些标识符 以便我的服务器可以询问 Android Market 是否有人拥有该 id 确实购买了该应用程序 我该怎么做呢
  • 使用 WIF 和 jquery ajax 请求时 ASP.NET MVC 3 中的会话 Cookie 过期处理

    我的项目我正在使用WIFI 但这对于这个问题的上下文来说并不重要 您可以使用处理身份验证的替代框架 问题是关于执行 ajax 请求时处理身份验证失败的问题 尽管如此 就我而言 我编写了继承自的自定义服务器逻辑ClaimsAuthentica
  • 带有 Nodejs 本机模块的 AWS Lambda

    最近我开始使用 AWS Lambda 函数 我的 Nodejs 应用程序运行良好 直到我尝试使用web3 js包裹 添加行后 const Web3 require web3 我收到 HTTP 端点的 内部服务器错误 错误 并在 CloudW
  • Java 正则表达式 - 只包含一个空格的表达式

    我想将所有表达式与一个空格匹配 目前 我正在使用 s s s 不过 这似乎不是一个很好的方法 为什么不 很好 只是有点过于复杂 S s S
  • 在 XML 文件中搜索元素值

    在给定的 XML 文件中 我尝试使用以下命令搜索字符串是否存在XPath在爪哇 然而 即使字符串在那里 我的输出总是显示为 否 希望这里有人能指出我可能做错了什么 XML 文件
  • WIX 工具集包含多个文件

    我们有一个包含多个文件和文件夹的文件结构 我是 wix 工具集的新手 不太确定如何包含所有这些文件并保留目录结构 我知道 我可以添加这样的文件
  • 如何在MySQL中生成唯一的id?

    我正在使用 PHP 和 MySQL 编写脚本 我想要一个 唯一 id 由字符串组成 大写和小写 带数字的字母 例如 gHYtUUi5b 我发现 PHP 中有很多函数可以生成这样的数字 但我担心如何确保 id 是唯一的 UPDATE uuid
  • iOS (Cordova) 上出现键盘时如何调整 Web 视图大小

    在 Phonegap 3 7 0 上 当键盘出现在 iPhone 或 iPad 上时 Web 视图不会调整大小 并且键盘最终位于页脚上方 我希望缩小网络视图 以便页脚保持可见 有没有什么办法解决这一问题 我在这里看到了很多问题 实际上却达到
  • 事务应该在 .NET 还是 SQL Server 中处理?

    我进入了一个使用 NET C 作为前端 SQL Server 2008 作为后端的应用程序 我发现事务总是在 C 代码中处理 似乎这个项目有一条不成文的规则 我们不应该在存储过程中使用事务 我个人认为事务应该在存储过程中处理 因为它可以更好
  • 什么java设计模式可以避免强制转换数据实体

    我目前正在我的应用程序中实现类似异步的事件队列 它被设计为这样工作 一个组件对某些用户输入做出反应并将事件放入队列 另一个 侦听器 正在检查是否存在特定类型的事件在队列内部并运行它自己的业务逻辑 可以有各种事件类型 如 USER MOUSE
  • 如何将 Flutter 永久添加到 Mac 中的路径

    我知道有很多类似的答案 但是我已经检查过它们 观看了相关视频并尝试了无数次 我将 flutter 路径导出到 bashprofile 并按屏幕截图所示保存 但是如果我关闭终端并尝试使用 flutter 命令 例如flutter versio
  • C++ 中的“foreach”循环如何知道数组的长度

    我正在看下面的例子http www cplusplus com doc tutorial arrays 我不知道第二个 for 循环是如何工作的 for循环如何知道数组何时结束 如果它能弄清楚为什么第一个循环不使用类似的方法 我的印象是数组
  • 如何使用 codeigniter 将表单值插入 mysql 数据库[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我是 Codeigniter 的新手 如何使用 codeigniter 将表单值存储在
  • 将 JButton 图标向左对齐并保持文本居中

    我想设置一个 JButton 使其图标左侧对齐 而文本居中 我已经找到了如何让其中一个位于左侧 另一个位于右侧 或两者处于同一设置 但我找不到我要找的东西 当然我总是可以重新定义paint方法 但我正在寻找一种更精简的方法来做到这一点 您可
  • 将 get-content 放入 html 电子邮件的数组中

    html部分 html htm html text computername username text html out file c scripts temp Report html 我在 html 变量中有 html 语言 当我决定更
  • 使用 htaccess 进行移动重定向

    我有一个网站叫 www website org 我有一个移动网站 名为 m website org 我想使用 htaccess 自动将主网站 URL 重定向到移动版本 但是 移动版本上有一个链接指向主网站 称为 www website or
  • 数据框中行值的平均值,不包括 R 中的最小值和最大值

    我得到以下数据框 df 此处显示的片段 H2475 H2481 H2669 H2843 H2872 H2873 H2881 H2909 E1 94 470 26 481 15 120 18 490 16 189 11 422 14 886
  • 如何知道两个表情符号是否会显示为一个表情符号?

    表情符号 由2个unicodeScalars U 1F44D U 1F3FC组成 如何将其识别为 1 个 显示 表情符号 因为它将在 iOS 上如此显示 Swift 4 Xcode 9 更新 从 Swift 4 开始 表情符号序列 被视为单
  • 如何防止android应用程序中的choosePrivateKeyAlias对话框?

    我有一个 Android 应用程序 可以在网络视图中调用安全网站 webview 检索证书并将其提供给网站 我必须使用KeyChain choosePrivateKeyAlias this keyChainAliasCallback nul