我需要跟踪我的Android应用的安装引荐。它在大多数设备中都能正常工作。但在Redmi设备中,广播没有被触发。我用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>
请建议是否有人遇到同样的问题并获得解决方案?
答案 0 :(得分:3)
您的应用是否位于&#34;受保护的应用列表中?允许在后台运行?如果没有,它将无法自动启动。这是小米,华为等设备的问题。在&#34;设置 - &gt;应用程序 - 安全&#34;中应该有一个设置页面。这允许您将应用程序添加到允许自动启动,在后台运行的应用程序列表等。每个设备制造商都这样做有点不同,但总的来说,我们在中国设备上看到这一点,以节省电池寿命
另见:
答案 1 :(得分:0)
在Redmi设备中,一些Android应用程序需要权限。请在设备中手动允许权限。通过在您的设备中使用应用权限选项授予所有权限。它可能适用于我的应用程序。
答案 2 :(得分:0)
我使用Redmi 3 Pro并且总是遇到Android权限问题。小米设备有时会使用导致权限请求错误的自定义ROM。
在我安装的每个应用中,重叠服务权限始终强制设置为拒绝。我必须手动允许。
我找到了很好的解决方法,让小米设备自动启动权限:How to get MIUI Security app auto start permission programmatically?
答案 3 :(得分:0)
miui总是存在一些问题,因为他们对后台进程的限制你可以在这里打开它们是怎么回事
1:转到设置 - &gt;管理应用的电池使用情况 - &gt;选择应用。从那里,选择您想要接收推送通知的所有应用,然后选择“无限制。”
2:转到设置 - &gt;权限 - &gt;自动开启。从那里,选择您想要的应用程序,并切换开关以打开它。
3:在“最近的应用”/“应用概述”平面中锁定应用。首先打开应用程序,然后按“最近的应用程序/概述按钮”(这是Android上的方形按钮,或Mi Mix上有三条水平线的按钮)。从那里,找到你想要接收通知的应用程序,下拉它以“锁定它”,这样它就永远不会被清除。
4:最后一步需要开发人员选项权限。要启用它,请转到设置(男人......我已经厌倦了输入“转到设置”...) - &gt;关于手机 点击MIUI版本选项卡八次。然后,您应该收到一条消息,说“您现在是开发人员”。然后返回设置,转到开发人员选项,滚动到接近底部,找到“内存优化”,然后将其关闭。
同样,也许第4步就是你所需要的。
答案 4 :(得分:-2)
您可以使用Google的Play Install Referrer Library api 1.0解决此问题。我是这样做的,并且在默认情况下阻止自动启动的设备上运行良好。
首先将以下行添加到您的应用程序的build.gradle文件的依赖项部分:
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.
}
});
}
然后,您应在Activity中实现接口InstallReferrerStateListener及其方法onInstallReferrerSetupFinished和onInstallReferrerServiceDisconnected
调用newBuilder()方法创建InstallReferrerClient类的实例。
调用startConnection()建立与Google Play的连接。
startConnection()方法是异步的,因此您必须重写InstallReferrerStateListener才能在startConnection()完成之后接收回调。
您还应该重写onInstallReferrerSetupFinished()方法来处理与Google Play的丢失连接。例如,如果Play商店服务在后台更新,则Play安装引荐来源库客户端可能会失去连接。库客户端必须在发出进一步请求之前调用startConnection()方法重新启动连接。
示例:
ReferrerDetails response = mReferrerClient.getInstallReferrer();
response.getInstallReferrer();
response.getReferrerClickTimestampSeconds();
response.getInstallBeginTimestampSeconds();
与Play商店应用建立连接后:
使用同步的getInstallReferrer()方法返回ReferrerDetails。 然后,使用ReferrerDetails中的方法获取安装时间戳记和引荐来源网址。
{{1}}
有关更多信息: https://developer.android.com/google/play/installreferrer/library
希望这会有所帮助!