2013-03-20 50 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