0

我使用了下面的代码

var findus = Ti.Contacts.getPeopleWithName('john');

我得到的错误是

未捕获的错误:权限被拒绝:从 pid=277、uid=10045 读取 com.android.providers.contacts.contactsprovider2 uri content://com.android.contacts/data 需要 android.permission。READ_CONTACTS

但我已将以下几行放在 tiapp.xml

  <android xmlns:android="http://schemas.android.com/apk/res/android"> <manifest>
  <uses-   permission android:name="com.get.permission.READ_CONTACTS"
  android:protectionLevel="signature"/> </manifest> </android>

安卓版本:2.2 sdk:1.8.2 os

请帮忙解决这个问题…………

4

2 回答 2

2

您似乎没有申请授权。

请在访问联系人之前请求授权。以下示例来自 Titanium 文档 ( http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Contacts ):

var performAddressBookFunction = function(){
    var findus = Ti.Contacts.getPeopleWithName('john');
};
var addressBookDisallowed = function(){alert('Sorry');};
if (Ti.Contacts.contactsAuthorization == Ti.Contacts.AUTHORIZATION_AUTHORIZED){
    performAddressBookFunction();
} else if (Ti.Contacts.contactsAuthorization == Ti.Contacts.AUTHORIZATION_UNKNOWN){
    Ti.Contacts.requestAuthorization(function(e){
        if (e.success) {
            performAddressBookFunction();
        } else {
            addressBookDisallowed();
        }
    });
} else {
    addressBookDisallowed();
}
于 2013-03-04T09:04:52.703 回答
1

权限的名称是“ android .permission.READ_CONTACTS”而不是“com.get.permission.READ_CONTACTS”。

在您的 tiapp.xml 中尝试以下操作:

<android xmlns:android="http://schemas.android.com/apk/res/android">
  <manifest>
    <uses-permission android:name="android.permission.READ_CONTACTS" android:protectionLevel="signature"/>
  </manifest>
</android>
于 2014-01-25T23:01:36.853 回答