db=helper.getReadableDatabase();
cursor=db.query(DBHelper.TABLE, new String[]{DBHelper.CONTACT_NO}, null, null, null, null, null);
String listContact[]=fromCursorToStringArray(cursor);
Log.d("Array",Arrays.toString(listContact));
String sms = "This is custom message" + "\n" + "IMEI : " + mngr.getDeviceId() + "\n" + "Location : " + provider + "\n" + Arrays.toString(listContact) + contact_name;
try
{
android.telephony.SmsManager smsmanager = android.telephony.SmsManager.getDefault();
for(int i=0; i<listContact.length; i++)
{
smsmanager.sendTextMessage(listContact[i], null, sms, null, null);
Log.d("index", listContact[i]);
}
Toast.makeText(getApplicationContext(), "SMS Sent!",Toast.LENGTH_LONG).show();
}
catch (Exception e)
{
Toast.makeText(getApplicationContext(),"SMS faild, please try again later!",Toast.LENGTH_LONG).show();
e.printStackTrace();
}
当我在Log中看到它时,它会给我数组中的所有联系号码,但是当我在字符串中串联时,联系号码不会显示在消息中
String sms = "This is custom message" + "\n" + "IMEI : " + mngr.getDeviceId() + "\n" + "Location : " + provider + "\n" + Arrays.toString(listContact) + contact_name;
答案 0 :(得分:2)
因为括号。
我已经创建了删除括号的功能。它在我身边工作
private String subString(String sms)
{
String temp = "";
for(int i=1;i<(sms.length()-1);i++)
{
temp += sms.charAt(i);
}
return temp;
}
答案 1 :(得分:1)
首先将数组放入String Variable,然后将Concat与消息放在一起。 String temp = Arrays.toString(listContact);
String sms =“这是自定义消息”+“\ n”+“IMEI:”+ mngr.getDeviceId()+“\ n”+“位置:”+提供者+“\ n”+ temp + contact_name;
有些时候Android无法直接转换和连接操作。 试试希望它能帮到你。
或
第二件事是检查你的联系人列表的cherecter长度因为消息中有charecter限制。因此,如果联系人列表长度超过最大允许长度,它就成了媒体,所以也请检查这个场景。