[英]What is standard format phone number to send SMS?
我的應用程序使用SMSManager將SMS發送到聯系人列表中保存的號碼
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage("phoneNo", null, "sms message", null, null);
我收到了用戶的反饋,他們的聯系人列表中的某些號碼無法從該應用程序接收短信。 似乎此問題與每個國家/地區的電話號碼格式有關。
來自美國的用戶反饋此格式的電話號碼無法接收SMS。 號碼:( 555)444-6666
我認為我應該在發送SMS之前將電話號碼轉換為“標准”電話號碼。
我應該使用什么標准格式的電話號碼?
如果我將數字的所有特殊字符從(555)444-6666刪除到5554446666 ,這種方法是在所有國家/地區申請的好方法嗎?
不需要發送消息的標准。
您可以復制並粘貼此代碼以檢索聯系人電話號碼。
private String readcontacts(Context context, String cName) {
ContentResolver cr = context.getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
null, null, null);
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
String id = cur.getString(cur
.getColumnIndex(ContactsContract.Contacts._ID));
String name = cur
.getString(
cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME))
.toLowerCase();
if (name.equals(cName.toLowerCase())) {
if (Integer
.parseInt(cur.getString(cur
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
// get the phone number
Cursor pCur = cr
.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = ?", new String[]{id},
null);
while (pCur.moveToNext()) {
String phone = pCur
.getString(pCur
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
return phone;
}
pCur.close();
}
}
}
}
return "Nothing found for " + cName + "!";
}
您只需要在此方法中指定聯系人姓名“ cName ” ,Android系統就會以正確的格式返回電話號碼。
然后發送短信。
public void sendSMS(String message) {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(readcontacts(context, "john"), null, message, null, null);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.