3

Google アナリティクスを使用して、アプリケーションのどの機能がどのように使用されているかを追跡していますが、この質問は、ACTION_SEND インテントを呼び出した後にユーザーが何をしたかを知りたい場合にも当てはまります。

基本的に、私はこの機能を使用して、ユーザーがコンテンツ (電子メール、Twitter、Facebook など) を共有できるようにしたいと考えています。これは、ストック Android インテント機能を使用して素晴らしく機能し、ユーザーが好みの電子メール クライアント、Twitter アプリなどを選択できるようにします。

        Intent sharingIntent = new Intent(Intent.ACTION_SEND);
        //Text seems to be necessary for Facebook and Twitter
        sharingIntent.setType("text/plain");
        sharingIntent.putExtra(Intent.EXTRA_TEXT, "whatever I want to share");
        startActivity(Intent.createChooser(sharingIntent,"Share using"));

ただし、インテントから戻ったときにユーザーが何をしたかを知る方法が見つかりません。代わりに使用することを調べましstartActivityForResultたが、これは、共有が完了したかキャンセルされたかに関係なく返されるようです (さらに、異なるアプリケーション間で一貫して実装されていないようです) - 彼らが何をしたかに関する情報は確かにありません.

この時点で、分析を行うには、独自のカスタム アクションとそれぞれの SDK を使用して、Facebook と Twitter を介して共有を実装する必要があるように見えますか?

これは、Android の優れた機能の 1 つ、お好みのメール、Twitter、Facebook、およびブラウザ アプリケーションを使用できるという機能を損なうため、残念に思えます。

4

2 に答える 2

1

インテント選択リストを自分で作成するのではなく、自分で作成する場合は、自分でIntent.createChooser実行する前にどのインテントが選択されたかを確認できます。

Android ソース コードから、Gallery3D がそれを行う方法を次に示します。実行を求めている Intent に一致するパッケージをパッケージ マネージャーに照会しResolveInfo、ユーザーに選択を提示するために使用できるリストを返します。選択を記録し、選択内容でアクティビティを開始します。

于 2011-02-09T20:33:50.253 に答える
-1

Android のログから読み取ってみてはどうでしょうか。ログには、彼らが選択したものの詳細が含まれていると思います。醜いですが、うまくいくかもしれません。

于 2011-02-09T20:09:23.300 に答える