Курсор android sms — как получить countryISO

#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());
}