Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Android ACTION_SEND Intent и Google Analytics - как узнать, что они выбрали?

Автор вопроса: Chris LalandeОтветов: 2

Мы используем 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"));

Однако я не могу найти способ узнать, что сделал пользователь по возвращении из Intent. Вместо этого я изучил использование startActivityForResult, но это, кажется, возвращает только то, завершили ли они или отменили совместное использование (и даже это кажется непоследовательно реализованным в разных приложениях) - это, конечно, не дает мне никакой информации о том, что они сделали.

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

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

  • Хороший вопрос. Я пытался выяснить точно так же. Но после некоторого времени попыток я только пришел к выводу, что вы даже не можете знать, вошли ли они в приложение электронной почты/facebook/sms или нет. Надеюсь, кто-то здесь это знает. Eric Nordvik 09.02.2011

androidandroid-intentgoogle-analyticstwitterfacebook-java-api

Ответы

Ответ 1 · рейтинг 1 · Jess

Если бы вы сами создали список выбора намерения, вместо того, чтобы позволить Intent.createChooser сделать это за вас, вы могли бы увидеть, какое намерение было выбрано, прежде чем выполнять его самостоятельно.

Вот как это делает Gallery3D из исходного кода Android. Он запрашивает у диспетчера пакетов пакеты, соответствующие намерению, которое вы хотите запустить, и возвращает список ResolveInfo, которые вы можете использовать, чтобы представить пользователю их выбор, затем записать их выбор и начать действие с их выбором.

Ответ 2 · рейтинг -1 · Ollie C

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы