我正在遵循 Samsung SAP 提供商/消费者教程,但在运行 connect() 方法时遇到安全错误:
function connect() {
console.log("trying to connect");
document.getElementById('label').innerHTML = 'trying to connect';
if (SASocket) {
alert('Already connected!');
return false;
}
try {
webapis.sa.requestSAAgent(onsuccess, onerror);
} catch(err) {
console.log("exception [" + err.name + "] msg[" + err.message + "]");
document.getElementById('errorlabel').innerHTML = "exception [" + err.name + "] msg[" + err.message + "]";
}
}
js/main.js (74) :exception [SecurityError] msg[应用程序没有调用此方法的权限。]
在我的 config.xml 中,我有:
<tizen:privilege name="http://devloper.samsung.com/privilege/accessoryprotocol"/?
我还需要什么吗,例如证书?我可以在没有自己的证书的情况下运行示例项目,但我可以吗? 如果我自己从头开始创建应用程序,需要证书吗?
更新 - 解决方案: 两件事情 - 1. 拼写错误!开发者应该是开发者 - 2. @Nana Ghartey 也是正确的 - 需要一个证书来在设备上进行测试,通过向三星发送 CSR 来获取该证书(详细信息位于其开发者网站上)。
最佳答案
如果您想在真实设备上测试您的 Gear Consumer 小部件应用程序,则只需生成证书。在模拟器上运行时不需要它
您可以在 IDE 的帮助部分找到有关证书的更多信息(帮助内容 > Tizen Wearable 入门 > 开发环境 > Tizen SDK for Wearable > 证书)。
关于权限问题,附件协议(protocol)权限是公共(public)级别权限,允许应用程序使用 SAP 在设备和主机设备之间连接和传输文件。我使用此权限没有遇到任何问题。
也许,main.js 中的第 74 行需要合作伙伴/平台权限。请注意,在商业设备上安装应用程序,仅使用公共(public)级别权限开发应用程序。根据安全影响,权限分为三个级别:
公开
这些权限向所有 Tizen 应用程序开发人员开放。
合作伙伴
这些权限只能由在 Tizen 商店中注册为合作伙伴的开发者使用。
开发人员必须得到 Tizen 商店合作伙伴政策的充分识别和许可,才能使用公共(public)和合作伙伴级别的权限。
平台
这些权限在系统 API 中用于管理 Tizen 平台。
这些权限仅向特定的 Tizen 应用程序开发人员开放。
有关更多信息,请查看安全架构 guide
关于android - 安全权限错误 - Samsung Gear SAP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24139075/