Android使用短信意图从平板电脑发送短信?

时间:2013-01-10 13:36:46

标签: android android-intent sms tablet

我想知道是否可以使用SMS意图从Android平板电脑发送短信?如果这不可能,我有什么选择?

5 个答案:

答案 0 :(得分:9)

  

我想知道是否可以使用SMS意图从Android平板电脑发送短信?

没有真正的“短信”Intent。有ACTION_SENDACTION_SENDTO Intent个操作可能会导致发送短信。

对于“平板电脑”,屏幕尺寸高于平均水平的大多数设备都没有电话功能,因此无法对短信发送任何内容,更不用说发送它们以响应某些startActivity() Intent }。

  

我的选择是什么?

如果您必须能够发送短信,请将<uses-feature android:name="android.hardware.telephony"/>添加到您的清单中,这样您的应用只会安装在具有电话功能的设备上。

如果您希望发送短信(如果可能的话),但如果无法解决,则需要做三件事:

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

  2. 使用PackageManagerhasSystemFeature()查看您是否确实在运行时具有电话功能

  3. 对于具有电话功能的设备,在“短信startActivity()”上致电Intent之前,请使用PackageManagerqueryIntentActivities()查看是否有任何内容在将响应该Intent的设备上,或将您的startActivity()调用包装在异常处理程序中以捕获 ActivityNotFoundException

答案 1 :(得分: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);

答案 2 :(得分:0)

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

试试这个。

答案 3 :(得分:0)

如何检查平板电脑是否提供短信服务:

这是CommonsWareanswer中描述的第三种解决方案:

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;
    }
}

答案 4 :(得分: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);
}