Ну, всегда есть варианты. В этом конкретном случае (с учетом заданных условий относительно параметра запроса URL) я бы предложил создать отдельный метод совместного использования для каждой платформы, с которой вы хотите поделиться своим контентом, а не использовать метод совместного использования Android по умолчанию.
Например, здесь - это пользовательский общий доступ для Facebook и т. Д. c. Хотя этот метод довольно трудоемкий.
Но есть лучший вариант для обработки таких случаев. Это относительно новый способ получения информации о том, какое приложение было выбрано. Это просто. В основном вам необходимо:
- Создать
PendingIntent
для BroadcastReceiver
и предоставить IntentSender
в Intent.createChooser()
, например:
Intent share = new Intent(ACTION_SEND);
...
PendingIntent pi = PendingIntent.getBroadcast(myContext, requestCode,
new Intent(myContext, MyBroadcastReceiver.class),
FLAG_UPDATE_CURRENT);
share = Intent.createChooser(share, null, pi.getIntentSender());
- Получите обратный вызов в
MyBroadcastReceiver
и посмотрите в Intent.EXTRA_CHOSEN_COMPONENT
следующим образом:
@Override public void onReceive(Context context, Intent intent) {
...
ComponentName clickedComponent = intent.getParcelableExtra(EXTRA_CHOSEN_COMPONENT);
}
Подробнее здесь
Хотя вы не можете изменить Ваш URL для каждого конкретного c случая, поскольку событие совместного использования уже произошло, вы можете реализовать отдельный вызов API или ссылку URL, с помощью которой вы можете собирать данные аналитики, изменять результат отправленного вами клика URL (если вы контролируете серверную часть, конечно) или просто показать настроенное сообщение пользователю вашего приложения.
Имейте в виду, что для некоторых случаев использования этого метода URL-адрес, которым вы делитесь, должен быть уникальным для каждого пользователя (например, для изменения результата URL нажмите et c).
Надеюсь, это поможет.