Как я могу получить фото контакта и отправить путь URI? - PullRequest
0 голосов
/ 05 июня 2019

Я использовал плагин в Cordova для своего проекта, но это устарело, и мне нужно получить контакты по своему усмотрению.Я получаю все, но когда я пытаюсь отправить местоположение фотографии контакта, веб-просмотр, который должен показать изображение, не может получить файл.Я не знаю, что делать, путь виден в веб-представлении ??

public static List<ContactModel> getContacts(Context ctx) {
    List<ContactModel> list = new ArrayList<>();
    ContentResolver contentResolver = ctx.getContentResolver();
    Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
    if (cursor.getCount() > 0) {
        while (cursor.moveToNext()) {
            String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
            if (cursor.getInt(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)) > 0) {
                Cursor cursorInfo = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
                        ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[]{id}, null);

                Uri person = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, new Long(id));

                try {
                    ContactModel contact = new ContactModel();
                    contact.id = id;
                    contact.displayName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

                    String[] projection = new String[]{ContactsContract.CommonDataKinds.Phone.PHOTO_URI, ContactsContract.CommonDataKinds.Phone.PHOTO_THUMBNAIL_URI};
                    Cursor cur = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, projection, ContactsContract.CommonDataKinds.Phone._ID + " = ?", new String[]{id}, null);
                    String imageUri = null;
                    String thumbnailUri = null;

                    while (cur.moveToNext()) {
                        imageUri = cur.getString(cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.PHOTO_URI));
                        thumbnailUri = cur.getString(cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.PHOTO_THUMBNAIL_URI));
                    }

                    String uri = thumbnailUri != null ? thumbnailUri : imageUri;

                    if (uri != null) {
                        **??????**
                    }

                    if (cursorInfo != null) {
                        while (cursorInfo.moveToNext()) {

                            String contactType = "";
                            final int labelType = cursorInfo.getInt(cursorInfo.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
                            if (labelType == ContactsContract.CommonDataKinds.Phone.TYPE_CUSTOM) {
                                contactType = cursorInfo.getString(cursorInfo.getColumnIndex(ContactsContract.CommonDataKinds.Phone.LABEL));
                            } else {
                                contactType = (String) ContactsContract.CommonDataKinds.Phone.getTypeLabel(ctx.getResources(), labelType, "");
                            }

                            HashMap<String, String> item = new HashMap<>();
                            item.put("type", contactType);
                            item.put("value", cursorInfo.getString(cursorInfo.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));
                            contact.phoneNumbers.add(item);

                        }
                    }

                    Cursor cursorInfoEmails = contentResolver.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, null, null, null);

                    if (cursorInfoEmails != null) {
                        while (cursorInfoEmails.moveToNext()) {

                            String emailType = "";
                            final int labelEmailType = cursorInfoEmails.getInt(cursorInfoEmails.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));
                            if (labelEmailType == ContactsContract.CommonDataKinds.Email.TYPE_CUSTOM) {
                                emailType = cursorInfoEmails.getString(cursorInfoEmails.getColumnIndex(ContactsContract.CommonDataKinds.Email.LABEL));
                            } else {
                                emailType = (String) ContactsContract.CommonDataKinds.Email.getTypeLabel(ctx.getResources(), labelEmailType, "");
                            }

                            HashMap<String, String> item = new HashMap<>();
                            item.put("type", emailType);
                            item.put("value", cursorInfoEmails.getString(cursorInfoEmails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)));
                            contact.emails.add(item);
                        }
                    }

                    list.add(contact);
                    cursorInfo.close();
                    cursorInfoEmails.close();
                } catch (NullPointerException e) {
                    e.printStackTrace();
                }
            }
        }
        cursor.close();
    }
    return list;
}

путь, кажется, не завершен или что-то.Я не могу увидеть фотографию в веб-просмотре с URI.

Что я могу сделать?Спасибо

...