я пытаюсь сделать телефонный звонок, когда конкретное уведомление прибудет, я использовать Notification Service Listener читать входящие notificaion,сделать телефонный звонок, когда конкретное уведомление прибудет
public void onNotificationPosted(StatusBarNotification sbn) {
// if(if this is my notificaion..){
String name = sbn.getNotification().extras.getCharSequence(Notification.EXTRA_TITLE));
List<String> numbers = getPhoneNumbers(name);
Log.d(TAG, "i have all this numbers - " + numbers.toString());
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + numbers.get(1)));
startActivity(intent);
}
в «getPhoneNumbers» метод это один
public List<String> getPhoneNumbers(String name) {
List<String> numbers = new ArrayList<String>();
ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
"DISPLAY_NAME = '" + name + "'", null, null);
if (cursor.moveToFirst()) {
String contactId =
cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
// Get all phone numbers.
Cursor phones = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);
while (phones.moveToNext()) {
String number = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
numbers.add(number);
}
phones.close();
}
cursor.close();
return numbers;
}
все отлично работает (я использовал точки останова, чтобы Cheak всех ...) : «если это мое уведомление» отработано, я получаю название от SBN статистов, что «номера» arraylist включает все контакты числа после метода «getPhoneNumbers», но когда я начинаю наступление намерения.
В чем моя проблема? :/
я хочу numbers.get (1) .. (для этого контакта больше 5 чисел, поэтому я думаю, что это не проблема ...), и эта суфляция не работает:/ – Didi78
@ Didi78 проверить мое редактирование, я думаю, проблема в том, что вы не видите 'MainActivity' внутри' onNotificationPosted' .... –
вы говорите, что мне нужно определить myActivity = this; в onNotificationPosted? Я думаю, что это невозможно, потому что NotificationListenerService не является активностью. или, может быть, я вас плохо понял? Мне нужно определить его в моей MainActivity? (У меня есть..) – Didi78