2010-11-27 4 views
1

私はウィジェットからSMSメッセージを開始するためにメッセージングアプリを開こうとしていますが、アクティビティを開始すると長いアプリケーションリストを持つ「完了アクション」ダイアログが表示されますが、メッセージは表示されません私が思うのは、SMSメッセージを送信しようとするときのデフォルトであるはずのアプリケーションです。ここでSMSメッセージを送信しようとすると「完了アクション使用」ダイアログが表示されますが、メッセージングアプリはリストにありません。

は私のコードです:

public void onUpdate(Context context, 
    AppWidgetManager appWidgetManager, int[] appWidgetIds) { 

    Intent sendIntent = new Intent(Intent.ACTION_VIEW); 
    PendingIntent smsIntent1 = PendingIntent.getActivity(context, 0, sendIntent, 0); 
    sendIntent.putExtra("address", "8017777777"); 
    sendIntent.setType("vnd.android-dir/mms-sms"); 
    views.setOnClickPendingIntent(R.id.sms_btn1, smsIntent1); 

    appWidgetManager.updateAppWidget(appWidgetIds, views); 
    super.onUpdate(context, appWidgetManager, appWidgetIds); 

}

と私のマニフェストはそれでこれを持っている:

<uses-permission android:name="android.permission.SEND_SMS"/> 

任意のアイデア?ありがとう!

答えて

0

私はCommonsWareが言ってみましたが、それはうまくいきませんでしたが、それはIntent.ACTION_SENDTOを使用していた右のトラック(上の私を置く私はここに必要なものが見つかりました:。 http://snipt.net/Martin/android-intent-usage/

これは何ですかそれはのように見えることになった:

Uri uri = Uri.parse("smsto:0800000123"); 
    Intent it = new Intent(Intent.ACTION_SENDTO, uri); 
    it.putExtra("sms_body", "The SMS text"); 
    PendingIntent smsIntent1 = PendingIntent.getActivity(context, 0, it, 0); 
    views.setOnClickPendingIntent(R.id.sms_btn1, smsIntent1); 
+0

申し訳ありません - 私は間違った体系を持っていました。私は 'SENDTO'が' smsto'を使っていることを忘れています。 – CommonsWare

0

ほとんどの場合、メッセンジャーアプリにはあなたのMIMEタイプをカバーしていない<intent-filter>があります。

MIMEタイプがある理由は完全にはわかりません。 Intentがまったく動作するかどうかもわかりません。あなたは、この場合にSEND_SMS許可を必要としない

Intent sms=new Intent(Intent.ACTION_SENDTO, Uri.parse("tel:8017777777")); 

sms.putExtra("sms_body", msg.getText().toString()); 

startActivity(sms); 

注:私は、これは8017777777が電話番号であると仮定すると、動作します知っています。 SmsManagerを使用してSMSを直接送信する場合にのみ必要です。

Here is a project上記のIntentの構文と、SmsManagerを直接使用して、連絡先リストの連絡先にテキストメッセージを送信する方法のオプションとして示します。

+0

私はそれを試してみましたが、何もボタンをクリックした後に全く起こっていない、それはウィジェットなので、いくつかの問題がある場合、私は疑問に思うテントSMS =新しいテント(Intent.ACTION_SENDTO、ウリ。? .parse( "tel:8017777777")); sms.putExtra( "sms_body"、 "body"); PendingIntent smsIntent1 = PendingIntent.getActivity(context、0、sms、0); views.setOnClickPendingIntent(R.id.sms_btn1、smsIntent1); –

関連する問題