相关疑难解决方法(0)

android.database.CursorIndexOutOfBoundsException:索引-1请求

我正在尝试使用RawContacts.entityIterator读取所有联系人,但我看到了这个错误:

android.database.CursorIndexOutOfBoundsException:索引-1请求

以下是我的代码:

ContentResolver cr = getContentResolver();
        Cursor cur = cr.query(Contacts.CONTENT_URI, 
       null, null, null, null);

String id = cur.getString(cur.getColumnIndex(Contacts._ID));

if (cur.getCount() > 0) {
        while (cur.moveToNext()) {
         final Uri uri = RawContactsEntity.CONTENT_URI;
            final String selection = Data.CONTACT_ID + "=?";
            final String[] selectionArgs = new String[] {id};

            final Map<String, List<ContentValues>> contentValuesListMap =
                new HashMap<String, List<ContentValues>>();
            EntityIterator entityIterator = null;

            entityIterator = RawContacts.newEntityIterator(cr.query(
                    uri, null, selection, selectionArgs, null));

            while (entityIterator.hasNext()) {
                Entity entity = entityIterator.next();
                for (NamedContentValues namedContentValues : entity.getSubValues()) {
                    ContentValues …
Run Code Online (Sandbox Code Playgroud)

android

8
推荐指数
1
解决办法
1万
查看次数

如何从您的应用程序(使用NFC)发送联系人并将其保存在接收设备的联系人列表中?

如何使用您自己的应用程序(并使用Android Beam)将联系人发送到另一台设备并将其保存在其联系人列表中(即默认联系人应用程序).发送设备上的联系人将由ContactsContract提供商提供.

我最好不要让其他设备运行我的应用程序.内置联系人应用程序(Android的默认应用程序)可以发送和接收联系人.因此,应该可以使用自定义应用程序将联系人发送到内置联系人应用程序.

这个问题答案表明,您可以使用VCARD格式.

目前,我的应用程序将通过电话号码搜索联系人,然后将其显示在新活动(即内置联系人应用程序)中.见下文.

Uri uri = Uri.fromParts("tel", number.getText().toString(), "");
Log.d("ContactPicker", uri.toString());
startActivity(new Intent(ContactsContract.Intents.SHOW_OR_CREATE_CONTACT, uri));

// Example log message for the number (123)-123-1234 is "tel:(123)%20123-1234"
Run Code Online (Sandbox Code Playgroud)

我更喜欢这样做,但不要认为这是可能的,因为我无法返回找到的联系人(或者如果找不到现有的联系人,则返回创建的联系人).如果我想要发送特定联系人,我需要这些信息.

我可能需要查询所有联系人,找到我正在寻找的联系人并保存其ID.

注意:我正在使用API​​ 14


编辑

我做了一个概念证明应用程序,它执行此操作:https://github.com/dideler/HiFive

该应用程序可能是错误的.它没有维护,但欢迎拉取请求.

android nfc contactscontract android-contacts android-beam

5
推荐指数
1
解决办法
3474
查看次数

Android contatcs vcard API

是否有任何android API来提取vcard 3.0格式的联系人?我遇到了一个开源vcard项目android-vcard

但在使用示例中,提到了以下注释.

重要提示:如果您正在为Android设备开发应用程序,则不必使用此库,因为它已包含在基础Android框架中.只有在开发要在Android环境之外运行的应用程序时,此库才有用.Android开发人员:两次阅读此文本.

您能告诉我上面描述中提到哪个库吗?它是否可供应用程序开发人员使用?

android

3
推荐指数
1
解决办法
4288
查看次数