2

SMSインテントを使用してAndroidタブレットからSMSを送信できるかどうか知りたいのですが。これが不可能な場合、私の選択肢は何ですか?

4

5 に答える 5

9

SMSインテントを使用してAndroidタブレットからSMSを送信できるかどうか知りたいのですが。

実際には「SMS」はありませんIntent。SMSが送信される可能性のあるアクションがありますACTION_SENDACTION_SENDTO Intent

「タブレット」に関しては、平均以上の画面サイズのほとんどのデバイスにはテレフォニー機能がないため、SMSで何もできず、startActivity()一部のデバイスに応答して送信することはできませんIntent

私のオプションは何ですか?

どうしてもSMSメッセージを送信できるようにする必要がある場合は<uses-feature android:name="android.hardware.telephony"/>、マニフェストに追加してください。そうすれば、アプリはテレフォニー機能を備えたデバイスにのみインストールされます。

可能であればSMSメッセージを送信したいが、それが不可能な場合は回避する場合は、次の3つのことを行う必要があります。

  1. <uses-feature android:name="android.hardware.telephony" android:required="false"/>マニフェストに追加

  2. を使用PackageManagerhasSystemFeature()て、実行時に実際にテレフォニー機能があるかどうかを確認します

  3. テレフォニー機能を備えたデバイスの場合startActivity()、「SMS Intent」を呼び出す前に、デバイスにそれに応答するものがあるかどうかを確認するかPackageManager、例外ハンドラーで呼び出しを ラップして、queryIntentActivities()IntentstartActivity()ActivityNotFoundException

于 2013-01-10T13:48:03.813 に答える
0

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

これを試して。

于 2013-01-10T13:43:10.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

タブレットでSMSサービスを利用できるかどうかを確認する方法:

CommonsWareが彼の答えの中で方法として説明した3番目の解決策は次のとおりです。

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 に答える