Android从收件箱中获取短信接收者号码

时间:2013-08-03 11:54:16

标签: android phone-number

我正在尝试接收设备的电话号码,

tMgr.getLine1Number();

不可靠

现在我正在尝试从输入或发送框中的短信中检索号码

Uri uriSMSURI = Uri.parse("content://sms/sent");
        Cursor cur = ctx.getContentResolver().query(uriSMSURI, null, null, null, null);
        String[] columnNames = cur.getColumnNames();
        if (cur.moveToFirst())
            do {
                Log.d("sms reciever",cur.getString(2));

            } while (cur.moveToNext());
        cur.close();

但是在收件箱中第2列是发件人,而在sendbox中它是reciver,任何想法如何从短信中检索当前手机的号码?

1 个答案:

答案 0 :(得分:1)

这必须帮助你

TelephonyManager tMgr =(TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
  mPhoneNumber = tMgr.getLine1Number();

使用READ_PHONE_STATE权限。

我认为没有最佳方法可以做到这一点。因为这取决于某些条件......电话号码可能无法存储在任何地方,每个位置的SIM卡中。您必须要求用户输入他/她的号码并存储它。