Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 活动识别继续在奥利奥提供服务大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
到目前为止,我无解决问题.我看到很多指南如何完成这个( Documentation,Tutorial)并成功实现了它在Android 7中.我设法做的是成功获得通知,当用户活动发生变化时,服务在后台运行.我的应用程序完美运行问题在于android 8和谷歌电池管理.我的服务总是被杀死.那么……我已经试图克服这个问题:

>向用户解释如何为我的应用程序禁用电池优化,这样就不会终止我的服务.问题是它对于cummon用户来说太复杂了.
>添加

uses-permission android:name="android.permission.requEST_IGNORE_BATTERY_OPTIMIZATIONS"

并用代码检查:

Intent intent = new Intent();
            String packagename = context.getPackagename();
            PoweRMANager pm = (PoweRMANager) context.getSystemservice(Context.POWER_serviCE);
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODEs.O) {
                if (pm.isIgnoringBatteryOptimizations(packageName)){
                    intent.setAction(SetTings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTinGS);

                }
                else {
                    intent.setAction(SetTings.ACTION_requEST_IGNORE_BATTERY_OPTIMIZATIONS);
                    intent.setData(Uri.parse("package:" + packageName));
                }
            }
            context.startActivity(intent);

但我很不高兴我的应用程序可以被禁止在游戏商店,这是一个大问题.

>使用具有持久通知前台服务.问题是用户看到这种持续且有时无关的通知是非常不利的.

那么,即使我的应用程序在Android 8中处于后台,我怎样才能使用ActivityRecognitionClient并在活动改变时始终收到通知?也许以某种方式直接连接谷歌服务?

解决方法

虑使用 DetectedActivityFence,Awareness API的一部分.在这种情况下,系统会监视并向您发送广播,因此无需运行您自己的后台服务.

收到围栏广播后,您可以使用startForegroundService响应广播.即使您的应用程序位于后台并且相应的面向用户通知仅在短时间内可见,此功能仍然有效.

大佬总结

以上是大佬教程为你收集整理的android – 活动识别继续在奥利奥提供服务全部内容,希望文章能够帮你解决android – 活动识别继续在奥利奥提供服务所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。