0

だから私はテキストメッセージに画像を添付するインテントを呼び出そうとしています。次のコードは、エミュレーターの画像を含むテキストメッセージウィンドウを正しく表示しますが、私の電話(Droid X)ではクラッシュしました。

            String name = FILE_NAME;

            Uri uri = Uri.fromFile(new File(name));

            Intent intent = new Intent(Intent.ACTION_SEND); 
            intent.setClassName("com.android.mms", "com.android.mms.ui.ComposeMessageActivity"); 
            intent.putExtra(Intent.EXTRA_STREAM, uri);
            intent.setType("image/png"); 
            startActivity(intent); 

12-30 12:56:50.628: ERROR/AndroidRuntime(14603): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.mms/com.android.mms.ui.ComposeMessageActivity}; have you declared this activity in your AndroidManifest.xml?

問題は.setClassName行です。値をクラスにハードコーディングしましたが、おそらく間違っています。すべての電話をサポートするには、ここで何を使用する必要がありますか?

皆さんありがとう。

4

2 に答える 2

3

クラス名は一切設定しないでください。これにより、Androidは可能な限り最適なアクティビティを見つけ、必要に応じてアプリチューザーダイアログを起動します。

別の方法は、インテントで可能なすべてのアクティビティを解決し、ロジックを使用してどちらを選択するかを決定し、ロジックで選択できない場合はデフォルトでAndroidに選択させることです。ただし、これは少しやり過ぎです。ユーザーがMMSを送信できるようにすることが目標である場合は、そのレベルの詳細は必要ありません。

于 2010-12-30T18:36:54.520 に答える
0

sendIntent.setPackage( "com.android.mms");

それはあなたの問題を解決します

于 2016-07-20T07:05:30.113 に答える