我知道这个问题类似于BroadcastReceiver的许多问题,但正如我所读到的,他们没有解决方案。 BroadcastReceiver的教程告诉它即使应用程序没有在后台运行也能正常工作,我的问题是当app未运行时我无法使用它 我试图从主要活动呼叫广播,使用服务和.... 但他们没有解决我的问题。
这是我的代码:
MyReceiver java Class:
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context,"BroadCast Trigger",Toast.LENGTH_SHORT).show();
}
}
另外MyManifest代码:
<receiver
android:name=".MyReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.media.VOLUME_CHANGED_ACTION" />
</intent-filter>
</receiver>
答案 0 :(得分:0)
我发现无法以编程方式在Huawei Devices中激活BroadcastReceiver,但这里有一个解决方案,可以找到设备类型,并在这方面做一些必要的操作,例如向用户显示警告以手动激活它。
if ("huawei".equalsIgnoreCase(android.os.Build.MANUFACTURER)) {
// Do Needed Action
}
答案 1 :(得分:0)
我在使用Android 7的Huawey Honor上面临同样的问题。在索尼和中兴设备上,BroadcastReceiver按预期工作。但是在Honor上它工作了一段时间并且突然停止了。 我发现,这个问题与重新启动无关。我重新启动设备并广播接收器工作。但有时,它会在没有重新启动的情况下停止。
首先,我根据此解决方案将我的应用添加到受保护列表: "Protected Apps" setting on Huawei phones, and how to handle it
但它没有帮助:(
然后,根据此建议,我向我的应用添加虚拟辅助功能服务: Broadcast Receiver Not Working After Device Reboot in Android
问题解决了!