android - 如何在 tizen 可穿戴网络应用程序中获取作者证书的公钥?

标签 android tizen tizen-wearable-sdk tizen-web-app tizen-studio

在我的 tizen werable web 应用程序(目标:tizen 2.3.2)中,我需要获取作者证书的公钥(用于签署应用程序)以获取检查 token SAP [Samsung Accessory Protocol] 身份验证实现中的配对智能手机应用程序。

可穿戴应用程序和智能手机应用程序 (android) 使用相同的 keystore 进行签名。

是否可以通过 packageManager API 或类似的方式实现?

var myAppSigCert = "";//I NEED THIS ONE

SAAgent.authenticatePeerAgent(peerAgent,
    function(peerAgent, authToken){
        if (authToken.key === myAppSigCert ) {
            alert("Service connection request accepted: " + peerAgent.appName);
            SAAgent.acceptServiceConnectionRequest(peerAgent);      
        }else{
            alert("Service connection request REJECT: " + peerAgent.appName);
            SAAgent.rejectServiceConnectionRequest(peerAgent);
        }
   });

最佳答案

找到了。首先在web应用的config.xml中添加CERTIFICATE权限:

    <tizen:privilege name="http://tizen.org/privilege/appmanager.certificate"/>

然后简单地调用tizen.applicationgetAppCert方法:

var appCerts = tizen.application.getAppCerts(null);
for (var i = 0; i < appCerts.length; i++) {
    console.log("#" + i + " type:" + appCerts[i].type);
    console.log("#" + i + " value:" + appCerts[i].value);
}

appmanager.certificate 权限需要签署 PARTNER 级别的 AuthorCertificate 才能使用,对于 PUBLIC AuthorCertificate 它在应用程序安装期间返回此异常:

-   [MISMATCHED_PRIVILEGE_LEVEL]Signature Level is too low to use http://tizen.org/privilege/appmanager.certificate - Signature Level = public, Privilege Level = partner

有关 Tizen 特权的更多信息,请访问此处: https://www.tizen.org/tv/privilege

关于权限安全系统的信息: https://developer.tizen.org/dev-guide/2.4/org.tizen.gettingstarted/html/web/details/sec_privileges_w.htm

在运行时获取签名证书公钥的 API 引用: https://developer.tizen.org/development/api-references/web-application?redirect=https://developer.tizen.org/dev-guide/2.3.2/org.tizen.web.apireference/html/device_api/wearable/tizen/application.html#ApplicationManager::getAppCerts

关于android - 如何在 tizen 可穿戴网络应用程序中获取作者证书的公钥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46891848/

相关文章:

android - 对话框关闭时隐藏软输入键盘

java - 在android中使用volley发送json数组将mysql中的多条记录添加到php脚本

android - 无法在 Android 开发人员控制台中回复用户消息

tizen - 如何在tizen中设置日历闹钟

java - android.R.layout.simple_spinner_dropdown_item 和 android.R.layout.simple_spinner_item 的区别

javascript - 从手机上的 watch 打开 URL (Tizen)

c++ - 将 unsigned char* 转换为 std::string

proxy - 无法通过 Tizen 模拟器中的代理连接到 Internet

html - 如何在可穿戴网络 TIZEN 应用程序中启用页面指示器和更多选项?