Вообще, если вы используете какую-то рекламу, чтобы распространять ваше приложение, которое вы можете использовать некоторые инструменты Google:
Короче говоря, вам нужно вставить Googgle АНАЛИТИК вашего приложения (если вы еще не используете его, конечно), и использовать его инструмент, который называется:
Campaign Measurement
Тогда вы могли бы подписать Получатель платежа:
<receiver
android:name=".system.RefferReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
И вы могли бы справиться с логикой внутри приемника:
public class RefferReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
String referrer = intent.getStringExtra("referrer");
//do some logic
}
Отредактировано: К сожалению, я не прочитал ваш вопрос правильно. если вы просто хотите узнать источник рынка своего приложения. Вы можете использовать:
String installerMarket = getPackageManager().getInstallerPackageName("your_package_name");
if (installerMarket == null){
//do some default case
}
else if ("com.android.vending".equals(installerMarket)) {
//link to google play
} else if ("com.amazon.venezia".equals(installerMarket)){
//link to amazon
} else if //you got the idea, you need to know the name of every market store installer
}
Но он работает только с сервисами Google Play, не так ли? Если приложение не установлено через Google Play, никакой референт не будет получен? –
См. Отредактированный ответ – yshahak