2013-01-10 57 views

回答

9

我想知道是否可以使用SMS意圖從Android平板電腦發送短信?

確實沒有「短信」Intent。有ACTION_SENDACTION_SENDTOIntent可能導致發送SMS的操作。

對於「平板電腦」,屏幕尺寸高於平均水平的大多數設備都沒有電話功能,因此無法對短信進行任何操作,更不用說在某些Intent上針對startActivity()發送短信。

我的選擇是什麼?

如果您絕對必須能夠發送短信,請將<uses-feature android:name="android.hardware.telephony"/>添加到清單中,以便您的應用只能安裝在具有電話功能的設備上。

如果你想發送短信,如果這是可能的,但解決它,如果它是不可能的,你會想要做的三件事情:

  1. 添加<uses-feature android:name="android.hardware.telephony" android:required="false"/>到您的清單

  2. 使用PackageManagerhasSystemFeature()看到,如果你確實有在運行時

  3. 電話功能對於有電話功能,您撥打前設備上的「短信Intent」,使用PackageManagerqueryIntentActivities(),看看是否有設備上的任何將到Intent迴應,或包裝你startActivity()調用一個異常處理程序來捕獲 ActivityNotFoundException

0
String smsNumber = "your number here"; 
String smsText = "Your text"; 

Uri uri = Uri.parse("smsto:" + smsNumber); 
Intent intent = new Intent(Intent.ACTION_SENDTO, uri); 
intent.putExtra("sms_body", smsText); 
startActivity(intent); 
0

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("sms:" 
         + phoneNumber)));

試試這個。

0

如何以檢查是否一個片劑具有可用的SMS服務:

public static boolean hasSmsService(Context context) 
{ 
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("smsto:123456789")); 
    PackageManager pm = context.getPackageManager(); 
    List<ResolveInfo> res = pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); 
    if(res.size() > 0) 
    { 
     return true; 
    } 
     return false; 
    } 
} 
0:

在這裏其CommonsWare在他answer描述爲方法的第三溶液

0

這是你的鍋。嘗試它.........

Method : 
CAll on button click event..... 
sendSMS("Any text",number,sms_string); 

現在,聲明這一個oncreate();

public static void sendSMS(String status, String phoneNumber, String message) { 

    Log.e("", "Page : " + status + ", No : " + phoneNumber 
      + ",Message Length: " + message.length() + ", Message : " 
      + message); 
    SmsManager sms = SmsManager.getDefault(); 
    sms.sendTextMessage(phoneNumber, null, message, null, null); 
}