Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何检测特定应用程序是否未通过我的链接安装_Android_Google Play - Fatal编程技术网

Android 如何检测特定应用程序是否未通过我的链接安装

Android 如何检测特定应用程序是否未通过我的链接安装,android,google-play,Android,Google Play,我正在开发一款基于移动货币和其他应用程序的应用程序,因此我如何检测到任何应用程序都是通过我的链接安装的,而不是从play store安装的跟踪下载源的最佳方法是使用添加了引用参数的play store,并在应用程序中使用广播接收器来了解源 playstore链接的结尾应该类似于 配置你的应用程序 Android清单 首先,需要在AndroidManifest.xml中注册广播使用者 您还可以从中检查和下载示例代码跟踪下载源的最佳方法是使用添加了引用参数的playstore,并使用应用程序

我正在开发一款基于移动货币和其他应用程序的应用程序,因此我如何检测到任何应用程序都是通过我的链接安装的,而不是从play store安装的

跟踪下载源的最佳方法是使用添加了引用参数的play store,并在应用程序中使用广播接收器来了解源

playstore链接的结尾应该类似于

配置你的应用程序 Android清单

首先,需要在AndroidManifest.xml中注册广播使用者


您还可以从

中检查和下载示例代码跟踪下载源的最佳方法是使用添加了引用参数的playstore,并使用应用程序中的广播接收器来了解源代码

playstore链接的结尾应该类似于

配置你的应用程序 Android清单

首先,需要在AndroidManifest.xml中注册广播使用者



您还可以从

检查并下载示例代码。您可以在用户从您的链接下载时添加代码,以统计有多少用户通过您的链接下载了应用程序。。!!你知道吗,你可以将“推荐人”参数添加到用于访问应用程序Google Play Store页面的链接中。如果你想在Android中详细解释推荐人,我可以放一个。是的,我想在Google Analytics的@crashOverideTry活动中获得你的代码。你可以在用户从你的链接下载时添加代码,以计算有多少用户通过你的链接下载了应用程序。。!!你知道吗,你可以将推荐人参数添加到用于访问你的应用程序的Google Play Store页面的链接中。如果你想在Android中详细解释推荐人,我可以提供一个。是的,我想让你的代码提前感谢Google Analytics中的@crashOverideTry活动。感谢你的贡献,但它不起作用。。当应用程序安装广播接收器时,它不会捕获引用代码。要接收它还有什么工作要做吗?您是这样测试的:am广播-a com.android.vending.INSTALL\u referer-n com.example.android.custom.referer.receiver/.refererReceiver--s“referer”“utm\u source=YourAppName&utm\u media=yourmedia&utm\u campaign=yourmampaign&utm\u content=YourSampleContent”它给出的广播已完成:结果=0它不起作用了还有什么我没有包括在内的东西吗?我想它起作用了。在那里放一个调试日志。在Uri=Uri.parse(“?”+referer)之前;if(Strings.isNullOrEmpty(referer)){return;}后面的一行,它给出了当你用你想要实现的包名下载同一个应用程序时的数据。如果一个用户下载了像amazon这样的应用程序,那么我如何确定他是从我的应用程序而不是从google play下载的应用程序。。感谢你的贡献,但它不起作用。。当应用程序安装广播接收器时,它不会捕获引用代码。要接收它还有什么工作要做吗?您是这样测试的:am广播-a com.android.vending.INSTALL\u referer-n com.example.android.custom.referer.receiver/.refererReceiver--s“referer”“utm\u source=YourAppName&utm\u media=yourmedia&utm\u campaign=yourmampaign&utm\u content=YourSampleContent”它给出的广播已完成:结果=0它不起作用了还有什么我没有包括在内的东西吗?我想它起作用了。在那里放一个调试日志。在Uri=Uri.parse(“?”+referer)之前;if(Strings.isNullOrEmpty(referer)){return;}后面的一行,它给出了当你用你想要实现的包名下载同一个应用程序时的数据。如果一个用户下载了像amazon这样的应用程序,那么我如何确定他是从我的应用程序而不是从google play下载的应用程序。。谢谢
 <receiver
 android:name=".receivers.InstallReceiver"
 android:exported="true" >
 <intent-filter>
 <action android:name="com.android.vending.INSTALL_REFERRER" />
 </intent-filter>
 </receiver>
public class InstallReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        String rawReferrer = intent.getStringExtra("referrer");
        if (rawReferrer != null) {
            trackReferrerAttributes(rawReferrer, context);
        }
    }

    private void trackReferrerAttributes(String rawReferrer, Context context) {
        String referrer = "";

        try {
            referrer = URLDecoder.decode(rawReferrer, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            return;
        }

        if (Strings.isNullOrEmpty(referrer)) {
            return;
        }

        Uri uri = Uri.parse('?' + referrer); // appends ? for Uri to pickup query string

        String memberCode;
        try {
            referringMember = uri.getQueryParameter("mcode");
        } catch (UnsupportedOperationException e) {
            return;
        }

        SharedPreferences.Editor editor = context.getSharedPreferences(
            BuildConfig.PACKAGE_NAME, Context.MODE_PRIVATE).edit();

        if (!Strings.isNullOrEmpty(memberCode)) {
            editor.putString(Constants.REFERRER_CODE, memberCode);
        }

        String referralMedium = uri.getQueryParameter("tc");
        if (!Strings.isNullOrEmpty(referralMedium)) {
            editor.putString("referral_medium", referralMedium);
        }

        editor.apply();
    }
}