2012-03-15 3 views
2

アクションが実行されると、私のアプリケーションは(オプションで)ソーシャルメディアの更新を送信します。ACTION_SENDテキストのデフォルトのアプリ(セレクタ、プリファレンスなど)の設定

私はこれを、ユーザーのインストール済みのソーシャルメディアアプリを使用して行いたいとします。ユーザーを特定のアプリに限定したくないので、タイプtext/plainACTION_SENDインテントに対応できるものはすべて問題ありません。

しかし、私はユーザーが毎回同じアプリを使用することで、通常はTweetCaster/Facebook /何を選んでも毎回選択する必要はありませんそれにこだわる。

私はちょうどstartActivity()ACTION_SENDtext/plainと、私はチュー「を使用して完全なアクション」を取得し、チェックボックス「このアクションのデフォルトで使用」もあります場合。

しかし、これにより、すべてのアプリケーションの意図のデフォルトが設定され、(a)テキストを送信するための非ソーシャルメディアアプリにデフォルト設定されている可能性があります。彼らはそうではありません、それはどこかのテキストを送信するような一般的な意図をデフォルトにするのはちょっと "無礼"のようです。

一般的に人々は何をしていますか?私は、特定のアプリケーションの選択を可能にするListPreferenceを作成しているので(システム全体ではなく、私のアプリのために優先されるアプリで意図を発することはできますが)シンプル。

もっと明白なものがありませんか? 「デフォルトでこのアクションに使用」がデフォルトのアクションとしてのみ使用されるように、チューザーを起動する方法はありますか app ACTION_SENDing text/plain?

答えて

1

を経由して、それを引き起こすことができる唯一のデフォルトとして使用されます私のアプリのアクションACTION_SENDing text/plain?

いいえ、ごめんなさい。これは、ACTION_SENDのサンプルのほとんどがIntent.createChooser()を使用している理由の1つで、「これをデフォルトにする」チェックボックスを削除し、ユーザーが設定したシステム全体のデフォルトを無視します。

ListPreferenceに行くのではなく、独自の「デフォルト」ロジックを使用して独自のチューザーAlertDialog(またはダイアログのテーマActivity)を作成することができます。その「デフォルト」は次のようになります。

  • 特定の選択、システム全体のラインに沿って行動に基づいて
  • 「このデフォルトにする」(例えば、「「よく使う」とにあなたのリストを分割しますこの種の機能を持っているスーパーチュー 『その他」の作成など他の何か(すべてのユーザーの間で集計行動、月の満ち欠けに基づいて、オプション)

』中程度です誰も私にそれを打つことができなければ、今年のいつか私が傷つく可能性がある私のかゆみ。

+0

ありがとうございます。それをさらに調べると、ダイアログテーマのアクティビティの提案は、カスタムチューザを作成することであろうと、単にListPreferenceのようなものを構築するためのより良い方法であろうと、環境設定でアプリケーションを選択することができます。 (ListPreferenceは、私がそれを曲げている方法で虐待されるように設計されているようには見えないので、最初から始めている方がより合理的だと思います。) –

1

ACTION_SENDのようなインテントをターゲットなしで発射した場合、どのアプリがそのイベントを処理するかを判断する方法がありません。将来的にはそれをより良く処理するのはAndroidに任されています。

このような機能を実装する最善の方法は、ActionBar share buttonを使用することです。そのアクションを使用したら最後に選択したアプリに固執し、新しいものを共有するにはもう一度押す必要があります。

アクションバーを使用したくない場合は、開始したことを行う必要があります。ACTION_SENDを処理できるすべてのアプリのリストを取得し、そのアプリを目的に使用してください。

もっと明白なものがありませんか? "このアクションにデフォルトで使用"が私のアプリケーションのデフォルトのアクションとしてのみ使用されるように、セレクタを起動する方法はありますか?ACTION_SENDing text/plain?

この選択はシステムポップアップであり、アクセスすることも、起動することもできません。アプリコードを使用して優先アクティビティを設定することはできません。 this

編集:私の信念に反して、あなたが「このアクションのデフォルトで使用する」というようにチューを発射する方法はありIntent.createChooser(Intent target, CharSequence title)

+0

悲しいことに、アクションバーは、私がやっていることにはあまり合わないようです。これは長い話ですが、私のアプリは、ほとんどの場合、オーディオキューを使ってユーザーとやりとりしています(アプリが画面上になくても、バックグラウンドで可能性があります)。私はAPIレベル8もターゲットにしています。だから、それを使うというのは、比較的厄介な作業です。私はそれを他の状況で役に立つと見ることができるので、それに向かって私を指して+1。 –

関連する問題