Android ACTION_SEND Intent и Google Analytics - как узнать, что они выбрали? - PullRequest
3 голосов
/ 09 февраля 2011

Мы используем Google Analytics для отслеживания того, какие функции нашего приложения используются и как, но этот вопрос может также относиться к любой ситуации, когда вы хотите узнать, что пользователь сделал после вызова намерения ACTION_SEND.

По сути, я хочу использовать эту функцию, чтобы позволить пользователям обмениваться контентом (электронная почта, Twitter, Facebook и т. Д.). Это прекрасно работает с использованием стандартной функции Android Intent, позволяющей пользователю выбирать предпочитаемый почтовый клиент, приложение 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, но, похоже, это возвращает только то, завершили они или нет совместное использование (или даже если это кажется непоследовательно реализованным в разных приложениях) - это, конечно, не дает мне никакой информации о том, что они сделали.

На данный момент, похоже, для того, чтобы иметь свою аналитику, мне нужно было бы реализовать обмен через Facebook и Twitter, используя свои собственные действия и их соответствующие SDK?

Это кажется позором, поскольку подрывает одну из приятных функций Android - возможность использовать ваши любимые приложения для работы с электронной почтой, Twitter, Facebook и браузером ....

Ответы [ 2 ]

1 голос
/ 09 февраля 2011

Если бы вы сами создали список выбора намерений, вместо того, чтобы позволить Intent.createChooser сделать это за вас, вы могли бы увидеть, какое намерение было выбрано, прежде чем выполнять его самостоятельно.Gallery3D делает это из исходного кода Android.Он запрашивает у менеджера пакетов пакеты, соответствующие назначению, которое вы хотите запустить, и возвращает список <a href="http://developer.android.com/intl/de/reference/android/content/pm/ResolveInfo.html" rel="nofollow">ResolveInfo</a>, который вы можете использовать, чтобы представить пользователю его выбор, затем записываете его выбор и запускает действие с его выбором.*

0 голосов
/ 09 февраля 2011

Как насчет чтения из журналов Android? Я ожидаю, что журналы содержат подробную информацию о том, что они выбрали. Ужасно, но это может сработать.

...