Как получить контактную информацию (например, имя номера и т. Д.) После запуска действия QuickContactBadge

Я работаю над QuickContactBadge. Я хочу показать значок моего приложения в QuickContactBadge, например facebook или gmail, и когда пользователь нажмет на значок, он запустит мое приложение с выбранным действием. И когда активность запускается, я хочу получить номер телефона, который выбрал пользователь.

В настоящее время мое приложение показывает QuickContactBadge, и значок также запускает основное действие в приложении, но я не могу получить форму номера телефона, который пользователь запускает приложение.

Мой код выглядит следующим образом:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if(getIntent().getData() != null) {
            Cursor cursor = getContentResolver().query(getIntent().getData(), null, null, null, null);
            if(cursor != null) {
                while (cursor.moveToNext()) { 
                    String contactId = cursor.getString(cursor.getColumnIndex( 
                            ContactsContract.Contacts._ID)); 
                    String hasPhone = cursor.getString(cursor.getColumnIndex( 
                            ContactsContract.Contacts.HAS_PHONE_NUMBER)); 
                    if (Integer.parseInt(hasPhone) == 1) { 
                        // You know have the number so now query it like this
                        Cursor phones = getContentResolver().query( 
                                ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
                                null, 
                                ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?" , 
                                new String[]{contactId}, null); 
                        while (phones.moveToNext()) { 
                            String phoneNumber = phones.getString( 
                                    phones.getColumnIndex( 
                                            ContactsContract.CommonDataKinds.Phone.NUMBER));  
                        } 
                        phones.close(); 
                    } else{
                        Toast.makeText(this, "Invalid Contact", Toast.LENGTH_SHORT).show();
                    }
                }   
            }
        }
        setContentView(R.layout.main);
    }

Он получает Intent.getData, но исключение на номер hasPhone, потому что столбец не существует, а также вниз в коде, если я игнорирую это исключение, пока номер телефона не может его получить. Пожалуйста, помогите мне, где я делаю неправильно.

Я использовал этот код для отображения моего приложения в QuickContactBadge


    
        

        
    
    
        

        

        
    

Ответы на вопрос(1)

Ваш ответ на вопрос