2013-03-20 54 views
0
Intent smsIntent = new Intent(Intent.ACTION_VIEW); 
smsIntent.setType("vnd.android-dir/mms-sms");   
smsIntent.putExtra("sms_body",sMessage); 
startActivity(smsIntent); 

它工作正常。但是我想打开不可编辑的邮件正文。用户只能选择他/她想要发送消息的号码Sms intent with non editable message body

+0

参见[这](http://stackoverflow.com/questions/7834134/android-send权限-sms-and-make-the-text-not-editable) – subodh 2013-03-20 06:44:00

+0

我不想使用SMSManager类。因为我必须为此创建另一个布局。 – Saurabh 2013-03-20 06:46:55

+0

我不能在putExtra中写任何东西吗? – Saurabh 2013-03-20 06:48:19

回答

2

您可以尝试不同的方式,然后intent.Like直接使用短信收件人的号码,并在自己的视图中显示消息。

代码发送短信直接把电话号码:

private void sendAutoSms(String phonenumber,String message, boolean isBinary) 
{ 
SmsManager manager = SmsManager.getDefault(); 

PendingIntent intentSend = PendingIntent.getBroadcast(this, 0, new Intent(SMS_SENT), 0); 
PendingIntent intentDelivered = PendingIntent.getBroadcast(this, 0, new Intent(SMS_DELIVERED), 0); 

if(isBinary) 
{ 
     byte[] data = new byte[message.length()]; 

     for(int index=0; index<message.length() && index < MAX_SMS_MESSAGE_LENGTH; ++index) 
     { 
       data[index] = (byte)message.charAt(index); 
     } 

     manager.sendDataMessage(phonenumber, null, (short) SMS_PORT, data,intentSend, intentDelivered); 
} 
else 
{ 
     int length = message.length(); 

     if(length > MAX_SMS_MESSAGE_LENGTH) 
     { 
       ArrayList<String> messagelist = manager.divideMessage(message); 

       manager.sendMultipartTextMessage(phonenumber, null, messagelist, null, null); 
     } 
     else 
     { 
       manager.sendTextMessage(phonenumber, null, message, intentSend, intentDelivered); 
     } 
} 
} 

包括在清单

<uses-permission android:name="android.permission.SEND_SMS"/> 
+0

用这种方式我必须创建我自己的布局。并且我还必须获取用户的联系人以提供自动完成功能来搜索用户想要发送邮件的联系人 – Saurabh 2013-03-20 08:46:22

+1

否则无法处理系统服务 – 2013-03-20 08:55:21

+1

您必须为此做一些自我工作定制的东西,你不想做任何事情,那是不可能的抱歉 – 2013-03-20 09:09:05