如何从区域设置访问Android中的本地区号?

如何从区域设置访问Android中的本地区号?,android,Android,大家好,我正在编写一个呼叫拦截应用程序。我的问题是,我无法将传入的电话号码与联系人列表进行比较,因为联系人列表中的电话号码格式不正确 例如: 来电格式YYYYXXXXXXXX(本地区号)+(电话号码)示例:261xxxxxxx 联系人列表格式xxxxxxxx(电话号码) 这是我访问联系人列表的方式: return new CursorLoader( getActivity(), // Parent activity context ContactsContract.Com

大家好,我正在编写一个呼叫拦截应用程序。我的问题是,我无法将传入的电话号码与联系人列表进行比较,因为联系人列表中的电话号码格式不正确

例如:

  • 来电格式YYYYXXXXXXXX(本地区号)+(电话号码)示例:261xxxxxxx
  • 联系人列表格式xxxxxxxx(电话号码)
这是我访问联系人列表的方式:

return new CursorLoader(
    getActivity(),   // Parent activity context
    ContactsContract.CommonDataKinds.Phone.CONTENT_URI, // Table to query
    new String[]{
            ContactsContract.CommonDataKinds.Phone.NUMBER,
            ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
            ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,

    },     // Projection to return
    null,
    null,            // No selection arguments
    null             // Default sort order

    ...
    String phoneNumber = data.getString(data.getColumnIndex(loader.getId() == LOAD_CONTACTS_CURSOR ? ContactsContract.CommonDataKinds.Phone.NUMBER : CallLog.Calls.NUMBER));

);
@Override
public void onReceive(Context context, Intent intent) {
    if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_RINGING)) {
          final Strng incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER));
    }
}
这是我访问来电的方式:

return new CursorLoader(
    getActivity(),   // Parent activity context
    ContactsContract.CommonDataKinds.Phone.CONTENT_URI, // Table to query
    new String[]{
            ContactsContract.CommonDataKinds.Phone.NUMBER,
            ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
            ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,

    },     // Projection to return
    null,
    null,            // No selection arguments
    null             // Default sort order

    ...
    String phoneNumber = data.getString(data.getColumnIndex(loader.getId() == LOAD_CONTACTS_CURSOR ? ContactsContract.CommonDataKinds.Phone.NUMBER : CallLog.Calls.NUMBER));

);
@Override
public void onReceive(Context context, Intent intent) {
    if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_RINGING)) {
          final Strng incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER));
    }
}
如何获取本地区号而不是国家代码。这样我就可以把收到的号码和联系人名单上的号码进行比较了


致意。

可能重复Im请求获取本地区号而非国家代码。请参阅下面的答案。他们告诉你如何获取本地区号。这对我不起作用。可能是重复的Im请求获取本地区号而不是国家代码。请参阅下面的答案。他们告诉你如何获取本地区号。这对我不管用。