不要在消息中显示联系人号码

时间:2014-05-07 05:29:48

标签: android sqlite

            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;

enter image description here

2 个答案:

答案 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限制。因此,如果联系人列表长度超过最大允许长度,它就成了媒体,所以也请检查这个场景。