2014-01-14 4 views
1

Мое приложение может обмениваться ссылкой на Facebook, но общая ссылка открывает Google Play в браузере, а не в приложении Google Play напрямую. Это становится более сложным для пользователя и не будет генерировать много загрузок. Как получить общую ссылку для открытия приложения Google Play вместо браузера?Как открыть приложение Google Play из общей ссылки Facebook?

Я полагаю, что правильное намерение должно быть создано с

Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); 
sharingIntent.setType("text/plain"); 

Он должен быть запущен с

startActivity(Intent.createChooser(sharingIntent, "Share via")); 

Проблема состоит в том, чтобы установить информацию в намерениях (код между создавая намерение и запуская его). Я использовал этот код раньше, и он без проблем начал веб-страницу для приложения:

sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Product name"); 
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "https://play.google.com/store/apps/details?id=example.package"); 

Я стараюсь, чтобы заменить это с помощью следующего кода, который должен начинаться Google Play:

sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Product name"); 
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, Uri.parse("market://details?id=example.package")); 

Это приводит к тому, что ссылка на AppStore не включается, когда я пытаюсь поделиться ссылкой с Facebook. Я тестирую два разных устройства, на которые оба Google играют. Я также пробовал с

sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Product name"); 
sharingIntent.setData(Uri.parse("market://details?id=example.package")); 

Это привело к появлению сообщения об ошибке «не удается найти приложение для выполнения этого действия». Вы знаете, как я могу решить эту проблему? Я заменил имя пакета моего приложения примерным пакетом в этом потоке, но при тестировании я использую правильное имя пакета.

ответ

0

Я думаю, вы следуете this guide, чтобы решить, как форматировать ваши намерения.

Что я вижу, так это то, что вы используете Uri.parse при использовании схемы «market: //».

sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, Uri.parse("market://details?id=example.package")); 

Uri.parse Обратите внимание, что не возвращает String, но URI и когда вы хотите поделиться, что вы должны послать String в намерения с действием Intent.ACTION_SEND, такими, как вы делаете с игрой URL. В руководстве говорится о Uri.parse("market://, но с намерением с действием Intent.ACTION_VIEW, чтобы открыть приложение для воспроизведения из приложения, которое создает намерение, а не для создания ссылки для совместного использования.

Итак, если вы хотите поделиться ссылкой на ваше приложение, вы должны поделиться ссылкой, как вы могли бы сделать с нормальной URL, в виде строки

sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Product name"); 
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "market://details?id=example.package"); 

И таким образом, ссылка будет включена в содержание, размещенное в Facebook. Но знайте, мы не знаем, какие устройства Android действительно поймут эту схему и откройте ее, или даже если facebook опубликует ее как ссылку.

Но, в любом случае. Я думаю, что ваша ошибка за один шаг раньше: Почему вы хотите поделиться ссылкой со страницей игрового приложения вашего продукта? Это может быть нормально, если пользователь, который видит эту ссылку на facebook, использует мобильный телефон Android, но что произойдет, если пользователь использует компьютер, любого другого смартфона, не работающего с Android? у вас будет только сломанная ссылка, и это не полезно вообще.

и, как вы можете прочитать в связанном руководстве

HTTP: // Позволяет пользователю выбрать, следует ли запустить приложение Play Маркет или браузер для обработки запроса. Если браузер обрабатывает запрос , он загружает целевую страницу на веб-сайт Google Play.

Таким образом, при открытии с устройства Android пользователь сможет выбрать способ его открытия.

Итак, что бы я сделал наверняка, нужно предоставить ссылку на сайт игры google.

+0

Возможно, вы, вероятно, правы, что лучше использовать ссылку на веб-сайт игры Google. Проблема в том, что общая ссылка открывает браузер на обоих моих устройствах. Вероятно, я установил, что браузер будет открыт по умолчанию некоторое время. Я хочу изменить это, поэтому приложение Google Play открывается по умолчанию, но я не нашел такой опции в настройках. Вы знаете, где я могу изменить эту настройку? Я не могу опубликовать приложение, которое я не тестировал и не работал так, как ожидалось. Вот почему мне нужно увидеть, что общая ссылка открывает игру Google на моих устройствах. У меня есть S4 mini и Galaxy Tab2. – user3194318

+0

Чтобы очистить настройки, связанные с действиями по умолчанию, открывающими намерение, вам просто нужно теперь указать имя пакета этой активности по умолчанию (т.е. ваш браузер) и использовать здесь код http://stackoverflow.com/questions/20132663/sending- ussd-code-programatically-dials-skype-вместо-normal-phone-call/20435472 # 20435472 –

+0

Спасибо, он работает так, как сейчас! – user3194318

Смежные вопросы