2

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

4

5 回答 5

9

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

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

关于“平板电脑”,大多数屏幕尺寸高于平均水平的设备都没有电话功能,因此无法对 SMS 进行任何操作,更不用说startActivity()在某些Intent.

我有什么选择?

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

如果您想在可能的情况下发送 SMS 消息,但在不可能的情况下解决它,您需要做三件事:

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

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

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

于 2013-01-10T13:48:03.813 回答
0

如何检查平板电脑是否有可用的短信服务:

这是CommonsWare在他的回答中描述为一种方法的第三个解决方案:

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;
    }
}
于 2013-01-16T20:50:38.070 回答
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);
}
于 2013-08-05T10:30:41.390 回答
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);
于 2013-01-10T13:42:16.693 回答
0

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

尝试这个。

于 2013-01-10T13:43:10.390 回答