2013-01-11 111 views
17

我與短信管理工作中android.The代碼我使用發送短信是如下:短信管理雙SIM卡手機?

private void sendSms(String Phnno, String Message) { 
    if (Utils.checkSIM(MyActivity.this)) { 
     SmsManager smsManager = SmsManager.getDefault(); 
     smsManager.sendTextMessage(Phnno, null, Message, null, null); 
     Utils.showMessage(MyActivity.this,"","Thank You for your interest,please check your inbox for the results."); 

    } else { 
     showErrorMessage(MyActivity.this, "SIM Error!", 
       "Please insert SIM"); 
    } 

} 

此代碼對我的作品完美地在單卡手機,但是當我檢查這個雙卡手機我我越來越關注警告並且SMS從不發送。

01-11 15:56:13.664: W/sendTextMessage(6656): use single sim interface to sendTextMessage by double sim interface 

請建議我如何可以提前實現它在我的雙卡phone.Thanks。

+0

你是如何設法得到女傭的? –

+0

看到這個鏈接 其對華爲g730我的工作[http://stackoverflow.com/a/30677542/5102893](http://stackoverflow.com/a/30677542/5102893) –

回答

3

sendTextMessage()scAddress參數。這用於定義SMS中心地址。我認爲如果你設置正確,你將能夠發送消息。

您可以通過以下這個教程找到數: http://algorithmic-indian.blogspot.hu/2011/03/how-to-change-message-center-number-in.html 你可以試試這個問題,以及how to get the smsc number of a phone in android?那裏似乎顯然不是一個以編程方式獲得的數量。

+0

如果用戶有兩個來自同一運營商的手機,那麼smsc Android將會是相同的,對吧? –

+0

我想是的。我沒有可以測試的設備。 – allprog

+0

一些(大多數?)運營商有兩個(或更多?)SMSC號碼。我猜你可以嘗試爲每張SIM卡設置不同的SMSC號碼。我仍然需要嘗試,但目前我沒有雙SIM手機進行測試。 – Matthew

7

這將適用於這兩種情況。如果已經選擇了用戶,默認的SIM卡會自動接收並轉到下一個過程,否則當點擊發送按鈕時,它會要求確認選擇任何SIM卡來發送短信。我們測試了它的工作正常。

源代碼示例:

try 
{  
    Intent sendIntent = new Intent(Intent.ACTION_VIEW); 
    sendIntent.putExtra("sms_body","Body"); 
    sendIntent.putExtra("address", "PhoneNumber"); 
    sendIntent.setType("vnd.android-dir/mms-sms"); 
    startActivity(sendIntent); 
} 
catch (Exception e) 
{ 
    Toast.makeText(getApplicationContext(),"SMS faild, please try again later!",Toast.LENGTH_SHORT).show(); 
    e.printStackTrace(); 
} 
+7

這可能工作正常。但是,這不會首先重定向到SMS創建屏幕?如果他想直接發送消息怎麼辦? – SKT

+3

此代碼將啓動短信發送應用程序。不適合後臺SMS發送。 – allprog

+7

答案並不是直接解決相關代碼。這只是一個解決方法。 – Saran

相關問題