#android #cursor #sms
#Android #курсор #смс
Вопрос:
У меня есть этот код, в котором я читаю всю информацию о sms:
Uri mSmssentQueryUri = Uri.parse("content://sms/sent");
Cursor cursorS = getContentResolver().query(mSmssentQueryUri,null, null, null, null);
if (cursorS.getCount() > 0) {
while (cursorS.moveToNext()){
date = cursorS.getString(4);
address = cursorS.getString(2);
JSONObject jsonSms= new JSONObject();
jsonSms.put("type", "sms");
jsonSms.put("date", date);
jsonSms.put("receiver", address);
jsonSms.put("direction", "OUTGOING");
jsonObj.put("SMS" date, jsonSms);
}
}
Я делаю то же самое с вызовами, где я использую CallLog.calls, но я могу найти больше информации, такой как countryIso, которая дает мне код страны страны, где пользователь получил или совершил звонок.
Есть ли способ получить ту же информацию при отправке sms, чтобы я мог прочитать, что sms было отправлено из-за границы?
Комментарии:
1. смотрите DatabaseUtils.dumpCursor
2. Я сделал это и получаю следующую информацию: «_id, thread_id,address,person,date,protocol,read,status,type,reply_path_present,subject,body,service_center,locked,error_code,seen». Ничего, связанного со страной
Ответ №1:
передайте значение поля адреса в качестве телефона в приведенной ниже функции
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
// phone must begin with ' '
PhoneNumber numberProto = phoneUtil.parse(phone, "");
int countryCode = numberProto.getCountryCode();
} catch (NumberParseException e) {
System.err.println("NumberParseException was thrown: " e.toString());
}