Как получить контактную информацию (например, имя номера и т. Д.) После запуска действия 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