相关疑难解决方法(0)

从Android电子市场安装应用后获取推荐人

我正在尝试注册一个广播接收器,它捕获Android从市场安装应用程序后启动的"com.android.vending.INSTALL_REFERRER"意图.

我在此处详细了解:http://code.google.com/mobile/analytics/docs/android/#referrals

但是,我无法使用Google Analytics,因此我创建了自己的解决方案.我在清单文件中添加了以下内容:

<receiver android:name="com.test.Receiver" android:exported="true">
<intent-filter>
    <action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

并创建了一个基本的BroadcastReceiver类:

public class Receiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        Bundle extras = intent.getExtras();
        String referrerString = extras.getString("referrer");

        Log.w("TEST", "Referrer is: " + referrerString);
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,当安装应用程序时,接收器似乎没有捕获Intent(如果Intent甚至广播?)并且我没有记录输出.

我在某个地方出错了还是市场在安装应用程序时不再启动这些Intent?

android install referrer google-play google-play-services

68
推荐指数
4
解决办法
7万
查看次数

有可能将自定义参数传递给Android市场,以便我的应用程序在首次启动时收到它吗?

有没有办法将自定义参数传递给Android市场(或任何其他方式),以便我的应用程序在安装后接收参数(并且第一次运行).

让我解释.

  1. 使用argument1 ="Hello world1"(每次自定义参数)启动一个intent
  2. 从Android市场安装应用程序.
  3. 第一次打开应用程序.
  4. 应用程序显示消息"Hello world1"

任何情况都会这样做,而不只是意图到Android市场.

大多数情况下,应用程序将通过带有绑定http架构的条形码扫描程序进行安装.因此,浏览器的解决方法也是可行的,HTML5客户端存储,(存储到浏览器的参数,并在我的应用第一次运行时从那里获取)

更新

解决方案是为浏览器创建cookie或其他内容,然后从我安装的应用程序中访问它.那可能吗?如果是这样,你能提供一些相关信息吗?浏览器可以与应用共享数据吗?

android android-browser google-play

12
推荐指数
1
解决办法
6611
查看次数

有没有办法将消息从Android浏览器传递到应用程序?

我有一种情况,我希望将一些数据从移动网站传递到原生Android应用程序.一个复杂的问题是,在正常情况下,加载移动网站时可能不会安装原生Android应用程序.

这是一个例子:

我是ExampleApp的用户,我希望与您共享来自ExampleApp的特定数据,而您从未安装过ExampleApp.

我发送了一封电子邮件,其中包含指向移动网页的链接,该网页知道您打开链接时要查看的数据.但是,由于数据仅在本机应用程序中可用,而不是移动网络,因此您将进入一个页面,要求您转到Android Market并安装ExampleApp.

您安装了ExampleApp,理想情况下,您将直接访问我与您共享的数据.

最大的问题是查看移动网页和安装ExampleApp之间的脱节.

我已经考虑了几个解决方案,但都没有成功(说,我可能只是错误地实现它们):

  1. 在我们的域上设置一个cookie,其中包含加载移动网页时的数据.然后,当打开ExampleApp时,启动WebView以请求同一域上的页面并检查cookie的值.用它来确定要在ExampleApp中显示哪些数据.
  2. 使用JavaScript localStorage存储对该数据的引用,并使用WebView获取该域上的页面,并从ExampleApp中请求localStorage的内容.

在这两种情况下,似乎WebView和浏览器都是相互远离的沙箱,因此您无法获得两者之间的cookies/localStorage.

有没有其他方法可以"留下一个crumbtrail"或设置一条消息,以后安装的应用程序可以从浏览器访问?

编辑:鉴于一些回复,我应该提到我只希望你点击链接一次,不必点击一次,安装应用程序,然后再次点击打开应用程序到正确的地方.

html5 android webview

11
推荐指数
2
解决办法
6230
查看次数

拦截INSTALL_REFERRER,然后转发到Google AnalyticsReceiver

我已经编写了一个安装接收器来确定何时通过Market安装了应用程序.但是,AnalyticsReceiver如果安装在应用程序中,我还想将INSTALL_REFERRER广播传递到其他接收方(如Google Analytics).重要的是,我不知道是否安装了其他接收器,因为我的接收器将在其应用程序中被其他开发人员使用.

目前,我收到广播,完成后我打电话给:

AnalyticsReceiver receiver = new AnalyticsReceiver();

receiver.onReceive(context, intent);

问题是该AnalyticsReceiver课程可能不存在.

那么如果我不确定该应用程序是否使用了该AnalyticsReceiver怎么办?

或者Android本身会确保安装的每个接收器都能获得广播吗?

非常感谢!

android install google-analytics broadcastreceiver

7
推荐指数
1
解决办法
3168
查看次数

如何在Android中使用google track获取引荐来源?

我想实现安装引用跟踪并希望引用参数和存储在后端数据库中我已经看到许多例子或问题,如获取Android Google Analytics引用标记Android Google Analytics广告系列跟踪未显示但没有获得我生成链接的方式去尝试代码

   package SimpleDemo.ReferralTrack; 

   import java.io.UnsupportedEncodingException;
   import java.net.URLDecoder;
   import java.util.HashMap;
   import java.util.Map;

   import android.content.BroadcastReceiver;
   import android.content.Context;
   import android.content.Intent;
   import android.content.SharedPreferences;
   import android.os.Bundle;

  public class ReferralReceiver extends BroadcastReceiver
   {
@Override
public void onReceive(Context context, Intent intent)
{
    // Workaround for Android security issue: http://code.google.com/p/android/issues/detail?id=16006
    try
    {
        final Bundle extras = intent.getExtras();
        if (extras != null) {
            extras.containsKey(null);
        }
    }
    catch (final Exception e) {
        return;
    }

    Map<String, String> referralParams = new HashMap<String, String>();

    // …
Run Code Online (Sandbox Code Playgroud)

android tracking

5
推荐指数
1
解决办法
5616
查看次数