我正在尝试接收设备的电话号码,
但
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,任何想法如何从短信中检索当前手机的号码?
答案 0 :(得分:1)
这必须帮助你
TelephonyManager tMgr =(TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
mPhoneNumber = tMgr.getLine1Number();
使用READ_PHONE_STATE权限。
我认为没有最佳方法可以做到这一点。因为这取决于某些条件......电话号码可能无法存储在任何地方,每个位置的SIM卡中。您必须要求用户输入他/她的号码并存储它。