1

ユーザーが写真を送信できるアプリケーションがあります。この写真は、G メール、Facebook、flickr、そして私が興味を持っているテキスト メッセージなど、さまざまな方法で送信できます。次のコードを実行すると、ダイアログ ボックスが表示され、これらのオプションがいくつか使用可能になります。

       Uri uri = Uri.fromFile(new File(externalDirectory + FILE_DIRECTORY + fileName));      
        Intent intent = new Intent(Intent.ACTION_SEND); 
        intent.putExtra(Intent.EXTRA_STREAM, uri);
        intent.setType("image/png"); 
        startActivity(intent);

私の Droid X では、テキスト メッセージング オプションが表示され、このコードは画像を MMS に完全に追加します。

エミュレーターでは、テキスト メッセージングが自動的に選択され (他にオプションがないため)、これもうまく機能します。

私の Droid Incredible には、テキスト メッセージのオプションがありません。ただし、組み込みのテキスト メッセージング ユーティリティを手動で起動し、画像を追加して送信することはできます。また、市場から SMS/MMS アプリをダウンロードした後、このサードパーティ プログラムを使用して画像を送信するオプションがリストから利用可能になりました。

では、Droid Incredible でテキスト メッセージが利用できないのはなぜですか? オプションにするために何をする必要がありますか? また、アクセスできないタイプの電話でこの問題 (または不明な問題) を評価するにはどうすればよいですか?

4

2 に答える 2

2

では、Droid Incredible でテキスト メッセージが利用できないのはなぜですか?

彼らはそれを提供しないことを選択したからです。

オプションにするにはどうすればいいですか

抽象的には、できません。

Android互換性定義ドキュメントの引用:

Android アップストリーム プロジェクトでは、電話ダイヤラー、カレンダー、連絡帳、音楽プレーヤーなど、多数のコア アプリケーションが定義されています。デバイスの実装者は、これらのアプリケーションを代替バージョンに置き換えることができます。

ただし、そのような代替バージョンは、上流のプロジェクトによって提供される同じインテント パターンを尊重する必要があります。たとえば、デバイスに代替音楽プレーヤーが含まれている場合でも、曲を選択するためにサードパーティ アプリケーションによって発行されたインテント パターンを尊重する必要があります。

問題は、Messenger アプリが Google によって「コア アプリケーション」と見なされていないことです。Intentしたがって、デバイス メーカーは、独自のフィルターを備えた独自の SMS クライアントを含めることができます。HTC Incredible の場合、image/png ACTION_SEND Intent.

さて、私見ですが、Messenger はおそらくコア アプリケーションになるはずです。しかし、あなたの意見や私の意見は、今日の現実を変えるものではありません。

アクセスできない電話タイプでこの問題 (または不明な問題) を評価するにはどうすればよいですか?

「問題」にならないようにアプリケーションを再定義します。ユーザーが Facebook アプリをインストールしているという保証がないのと同様に、その方法で MMS を送信できるという保証はありません。

ACTION_SEND私は MMS についてよく知りません。また、MMS を送信する以外の方法があるかどうかもわかりません。ソース コードをメッセンジャー アプリに突き刺して、それがどのように機能するかを確認することを検討してください。次に、機能をアプリに直接焼き付けます。これには、いくつかの追加の権限 ( SEND_SMS、およびおそらくREAD_CONTACTS) が必要であり、書き込みが面倒ですが、デバイス間で動作する可能性が高くなります。

于 2011-01-08T20:28:39.603 に答える
2

SOに関する他の質問からの助けのおかげで、私はこれを回避することができました。

基本的に重要なのは、android.intent.action.SEND インテントを変更した (現在) 唯一の会社のように見える HTC が使用するインテントを決定することでした。リストにオプションを追加するコードは次のとおりです。

Uri uri = Uri.fromFile(new File(mFile));  
Intent intent = new Intent(Intent.ACTION_SEND); 
intent.putExtra(Intent.EXTRA_STREAM, uri);
intent.setType("image/png"); 

Intent htcIntent = new Intent("android.intent.action.SEND_MSG");
htcIntent.setType("image/png");
htcIntent.putExtra(Intent.EXTRA_STREAM, uri);

Intent chooser = Intent.createChooser(intent, "Send Method");
chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] { htcIntent });
startActivity(chooser);
于 2011-01-13T02:37:03.823 に答える