У меня есть класс, который расширяет BroadcastReceiver
и получает все новые смс.
Когда я получаю новые смс, я хочу найти телефонную книгу, чтобы проверить, есть ли номера телефонов в этом сообщении в телефонной книге, и если они есть, отправить смс с результатом на другой телефон.
Я использую ContentResolver
для проверки телефонных номеров, но чтобы использовать его, мне нужно использовать его внутри Activity или иметь указатель на активность, но мой слушатель sms работает в фоновом режиме.
Есть ли способ найти телефонную книгу без активности или получить действительную активность из контекста или намерения, которые я получаю при получении новых смс?
Я пытался использовать что-то подобное:
Activity act = new Activity();
DBManager dbm = new DBManager(act);
ArrayList<MyContact> res = dbm.phoneSearch(sms_ar[1]);
SmsSender sms = new SmsSender(act);
if(res.size() > 0){
String answer = res.get(0).getName()+CSStatic.SMS_SEPARATOR+res.get(0).getPhone();
for(int z = 1; z < res.size(); z++){
answer = answer+CSStatic.SMS_SEPARATOR+res.get(z).getName()+CSStatic.SMS_SEPARATOR+res.get(z).getPhone();
}
Log.d("sms", "Answer: "+answer);
sms.smsAnswer(answer, sms_ar[2]);
} else {
String phone = dbm.getPhoneToQuery(sms_txt);
sms.smsQueryNext(sms_txt, phone);
}
act.finish();
но это не работает: P
В DBManager я ищу телефоны, а в SmsSender отправляю новые смс.