11

我需要跟踪我的 android 应用程序的安装推荐。它在大多数设备中运行良好。但是在 Redmi 设备中,广播没有被触发。我用红米 Note 4 测试过

我已经通过 ADB 和 Play 商店对其进行了测试。两者都不会触发Redmi设备中的广播

下面是我正在使用的代码

public class ReferrerReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
           Log.d("Broadcast", "RECEIVED!");
        }
}


<receiver
    android:name=".receiver.ReferrerReceiver"
    android:exported="true">
    <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER"/>
    </intent-filter>
</receiver>

请建议是否有人遇到同样的问题并得到了一些解决方案?

4

5 回答 5

3

您的应用是否在允许在后台运行的“受保护应用”列表中?如果没有,它将不会自动启动。这是小米、华为等设备上的问题。在“设置->应用程序-安全”中应该有一个设置页面,允许您将您的应用程序添加到允许自动启动、在后台运行等的应用程序列表中。每个设备制造商的做法都有所不同,但是一般来说,我们在中国设备上将此视为保持电池寿命的一种方式。

也可以看看:

于 2017-08-04T15:19:04.913 回答
0

我使用 Redmi 3 Pro 并且总是遇到 Android 权限问题。小米设备使用自定义 ROM,有时会导致权限请求错误。

在我安装的每个应用程序中,覆盖服务权限始终强制设置为拒绝。我必须手动允许它。

我发现让小米设备自动启动权限的好方法:如何以编程方式获取 MIUI 安全应用程序自动启动权限?

于 2017-08-06T14:59:48.613 回答
0

miui 总是有一些问题,因为它们对后台进程的限制,你可以打开它们,这是怎么回事

1:进入设置->管理应用的电池使用->选择应用。从那里,选择您想要接收推送通知的所有应用程序,然后选择“无限制”。

2:转到设置->权限->自动启动。从那里选择您想要的应用程序,然后切换开关以将其打开。

3:将应用锁定在“最近的应用”/“应用概览”平面。首先打开应用程序,然后按“最近的应用程序/概览按钮”(即普通 Android 上的方形按钮,或 Mi Mix 上带有三条水平线的按钮)。从那里,找到您想要接收通知的应用程序,将其下拉以“锁定”它,这样它就永远不会被清除。

4:这最后一步需要开发人员选项权限。要启用它,请转到设置(伙计......我已经厌倦了输入“转到设置”......) - >关于手机在 MIUI 版本选项卡上点击八次。然后,您应该会收到一条小消息,说“您现在是开发人员”。然后返回设置,转到开发人员选项,滚动到接近底部,找到“内存优化”并将其关闭。

同样,也许第 4 步就是您所需要的。

于 2017-08-07T03:03:40.900 回答
0

在 Redmi 设备中,一些 android 应用程序需要权限。请在设备中手动授予权限。通过在您的设备中使用应用程序权限选项授予所有权限。我观察到我的应用程序可能会起作用。

于 2017-08-05T12:53:10.893 回答
-3

您可以使用 Google 的 Play Install Referrer Library api 1.0 解决此问题。我是这样做的,它在默认阻止自动启动的设备上运行良好。

首先将以下行添加到应用程序的 build.gradle 文件的依赖项部分:

dependencies {
...
compile 'com.android.installreferrer:installreferrer:1.0'

}

然后你应该在你的 Activity 中实现接口 InstallReferrerStateListener 及其方法 onInstallReferrerSetupFinished 和 onInstallReferrerServiceDisconnected

调用 newBuilder() 方法创建 InstallReferrerClient 类的实例。

调用 startConnection() 建立与 Google Play 的连接。

startConnection() 方法是异步的,因此您必须重写 InstallReferrerStateListener 以在 startConnection() 完成后接收回调。

您还应该重写 onInstallReferrerSetupFinished() 方法来处理与 Google Play 的丢失连接。例如,如果 Play 商店服务在后台更新,Play Install Referrer Library 客户端可能会断开连接。库客户端必须调用 startConnection() 方法来重新启动连接,然后再发出进一步的请求。

例子:

InstallReferrerClient mReferrerClient

mReferrerClient = InstallReferrerClient.newBuilder(this).build();
mReferrerClient.startConnection(new InstallReferrerStateListener() {
@Override
public void onInstallReferrerSetupFinished(int responseCode) {
    switch (responseCode) {
        case InstallReferrerResponse.OK:
            // Connection established
            break;
        case InstallReferrerResponse.FEATURE_NOT_SUPPORTED:
            // API not available on the current Play Store app
            break;
        case InstallReferrerResponse.SERVICE_UNAVAILABLE:
            // Connection could not be established
            break;
    }
}
@Override
public void onInstallReferrerServiceDisconnected() {
    // Try to restart the connection on the next request to
    // Google Play by calling the startConnection() method.
}
});

与 Play 商店应用建立连接后:

使用同步的 getInstallReferrer() 方法返回 ReferrerDetails。然后,使用 ReferrerDetails 中的方法获取安装时间戳和推荐人 URL。

ReferrerDetails response = mReferrerClient.getInstallReferrer();
response.getInstallReferrer();
response.getReferrerClickTimestampSeconds();
response.getInstallBeginTimestampSeconds();

欲了解更多信息: https ://developer.android.com/google/play/installreferrer/library

希望这可以帮助!!

于 2019-01-25T18:38:18.003 回答