Articles of android 8.0 oreo

三星Oreo BLE连接问题

我们正在开发Android BLE并成功实施,并且它适用于所有操作系统版本和设备。 我们可以使用以下代码成功连接: mBluetoothDevice.connectGatt(this, true, mGattCallback); connectGatt 但最近三星发布了面向三星Galaxy S9,S9 +,S8,S8 +等设备的Android Oreo(8.0.0)。 现在我们无法使用上述方法与Android Oreo的三星设备中的BLE连接。 我们没有在mGattCallback得到任何回调。 当autoconnect标志为true ,日志为: 06-16 14:03:39.666 13724-13724/com.ble D/BluetoothGatt: cancelOpen() – device: DA:32:19:58:63:69 06-16 14:03:39.667 13724-13724/com.ble D/BluetoothGatt: close() 06-16 14:03:39.668 13724-13724/com.ble D/BluetoothGatt: unregisterApp() – mClientIf=0 06-16 14:03:39.792 13724-13724/com.ble D/BluetoothGatt: connect() – device: DA:32:19:58:63:69, auto: true 06-16 14:03:39.793 13724-13724/com.ble D/BluetoothGatt: registerApp() 06-16 14:03:39.793 13724-13724/com.ble […]

JobScheduler Android Oreo问题

在我当前的公司申请中,我有一个ForegroundService,在工作人员值class时运行(登录到应用程序)。 在用户登录时保持前台服务正常运行非常重要。要从这种前台服务以某种方式被杀死的情况中恢复(用户任务轻扫或系统杀死)已经实现了一个带有Jobscheduler的定期JOB,它会重新激活ForegroundService以防万一关掉。 此技术在Android 8 OREO之前运行良好。 START_STICKY和其他技术本身并不适合我。 在Android 8中,一旦前台服务被杀死,定期作业也会被杀死。 我在logcat中收到通知,不允许该作业运行。 根据我的理解,即使应用程序处于后台或被杀,乔布斯也能够运行。 它以前所未有的方式开发OREO设备。 据我所知,我可以通过在应用程序设置中启用“自动启动”选项来解决这个问题。 但是,由于没有办法知道员工是否认可,这也不是一件可靠的事情。 所以我的问题是: – 为什么Job Scheduler在Android 8中停止工作? – 我可以使用任何其他可靠的技术让我的ForegroundService从ANDROID OREO中关闭恢复吗? 我已阅读https://medium.com/exploring-android/exploring-background-execution-limits-on-android-oreo-ab384762a66c,但没有回答我的问题 非常感谢你

tgkill – Android 8.0 Samsung S8上的原生错误

最近我开始收到Android原生崩溃(在谷歌播放生命周期中报道)。 它们只发生在配备Android 8的三星Galaxy S8或S8 +手机上。 根据堆栈跟踪,它与UI呈现器线程相关。 但是,我不知道如何修复它,甚至不知道它在应用程序中的确切位置。 任何想法如何找出应用程序在哪里发生这种情况? 为什么只有Android 8的Galaxy S8会受到影响? 谢谢。 backtrace: #00 pc 0000000000071854 /system/lib64/libc.so (tgkill+8) #01 pc 000000000001e058 /system/lib64/libc.so (abort+88) #02 pc 0000000000008248 /system/lib64/liblog.so (__android_log_assert+328) #03 pc 0000000000052430 /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread10EglManager11damageFrameERKNS1_5FrameERK6SkRect+320) #04 pc 000000000004f9dc /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread14OpenGLPipeline4drawERKNS1_5FrameERK6SkRectS8_RKNS0_12FrameBuilder13LightGeometryEPNS0_16LayerUpdateQueueERKNS0_4RectEbRKNS0_15BakedOpRenderer9LightInfoERKNSt3__16vectorINS_2spINS0_10RenderNodeEEENSM_9allocatorISQ_EEEEPNS0_19FrameInfoVisualizerE+76) #05 pc 000000000004d7e0 /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread13CanvasContext4drawEv+176) #06 pc 00000000000511e8 /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread13DrawFrameTask3runEv+184) #07 pc 0000000000058494 /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+356) #08 pc […]

Google智能锁定对话框未出现在Android O设备中

我最近将GoogleSmartLock与我的应用集成在一起。 不知何故,Android O设备中没有出现保存对话框,并且API引发了以下错误。 已禁用Credentials API的保存确认对话框,以避免与Android自动填充function发生冲突。 可以通过AuthCredentialsOptions.Builder.forceEnableSaveDialog()。,resolution = null}覆盖此选项。 我检查了playservices的最新发行说明,发现以下API可以解决这个问题。 Auth.AuthCredentialsOptions.Builder forceEnableSaveDialog () 但是我不知道如何在GoogleApIClient中使用这个api,因为它没有在技术上应该返回AuthCredentialOptions实例的构建方法。 如果有人遇到同样的问题,请告诉我。

如何让adb shell ps列出Android O中的所有进程?

adb shell ps无法在O android版本中运行 Android O版本中的adb shell ps命令仅列出ps进程信息,但它没有列出所有进程的所有进程信息,就像它在早期的android发行版中所做的那样 列出android O版本中所有进程信息的命令是什么?

android Oreo中的RTL布局错误

自从我在移动设备上升级到android oreo后,我的RTL支持应用程序无效。 它正在将字符串更改为阿拉伯语,但不会更改布局方向。 但如果我将同一个RTL转移到低于奥利奥的任何设备,一切正常。 其他人遇到过这个问题? 关于这个bug和解决方法还有任何官方声明吗? 下面是我更改区域设置的方法 public static boolean setDefaultLocale(Context context) { Resources resources = context.getResources(); PreferenceManager preferenceManager = PreferenceManager.getInstance(); String localLanguage = resources.getConfiguration().locale.getLanguage(); boolean isLanguageChanged = !preferenceManager.getCurrentLanguageCode().equalsIgnoreCase(localLanguage); if (isLanguageChanged) { Log.d(“”, preferenceManager.getCurrentLanguageCode()); Locale locale = new Locale(preferenceManager.getCurrentLanguageCode()); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) Locale.setDefault(Locale.Category.DISPLAY, locale); else Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; […]

华为EMUI 8 Oreo – Notification Channel – Tone

一些用户报告华为EMUI 8.0 Oreo , 通知频道 无法从应用程序中更改音调“声音”/“通知音” ! 截至官方文档,开发人员无法再更改设置 。 那么如何为华为手机添加一个选项,以便再次更改“通知音”? 有谁知道为什么华为删除了这个function? 我没有find华为的官方文档,我们现在可以让用户更改通知音。 我指的官方文档: https://developer.android.com/reference/android/app/NotificationChannel.html 自由软件网站

Android Oreo字体系列NPE崩溃

我正在使用API​​ 26中引入的新Android 字体支持 ,并在支持库的第26版中向后移植。 我已经创建了两个字体的font_family.xml ,如下所示: 然后我在我的活动布局中将它设置在TextView上,如下所示: 这可以在运行Marshmallow的Nexus 5上使用正确的字体呈现TextView(使用支持库)。 但是当我尝试在具有以下堆栈的Pixel Oreo设备上运行它时它会崩溃: Caused by: android.view.InflateException: Binary XML file line #44: Binary XML file line #44: Error inflating class TextView Caused by: android.view.InflateException: Binary XML file line #44: Error inflating class TextView Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ‘boolean java.lang.Boolean.booleanValue()’ on a null object reference […]

适用于Android dev的可下载字体和“Chrome已停止”错误

作为Oreo和支持库中新的可下载字体支持的一部分,我已经开始将function集成到我开发的应用程序中。 第一个应用程序是成功的 – 简单的应用程序只有一些活动。 第二个应用程序没有成功。 添加可下载字体(基于此资源: https : //developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts.html )后,我在启动活动时遇到此错误: 01-05 13:48:50.849 1112-16753/? I/ActivityManager: Start proc 22862:com.android.chrome:sandboxed_process0/u0i247 for webview_service edu.bsu.android.apps.traveler/org.chromium.content.app.SandboxedProcessService0 01-05 13:48:51.047 22862-22862/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.android.chrome:sandboxed_process0, PID: 22862 android.content.res.Resources$NotFoundException: Array resource ID #0x7f030030 at android.content.res.Resources.obtainTypedArray(Resources.java:618) at android.content.res.Resources.preloadFonts(Resources.java:380) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5769) at android.app.ActivityThread.-wrap1(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Native […]

然后,即使我停止了服务,Context.startForegroundService()也没有调用Service.startForeground()

所以我的应用程序有一些触发服务和通知的远程操作。 在调用startForegroundService和服务尝试启动通知的时间之间,事情可能会发生变化,因此服务会再次检查事物的状态,然后决定要执行的操作。 因此,如果我的服务决定它不需要运行,它将调用: stopForeground(true); stopSelf(); 但由于某些原因,这似乎不起作用,因为我在拨打这些电话后几乎立即得到了这个例外。 11-16 13:34:23.488 15099-15099/mypackage E/AndroidRuntime: FATAL EXCEPTION: main Process: mypackage, PID: 15099 android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground() at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1768) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 那我怎么解决这个问题呢? 谢谢。 编辑: 我创建了一个示例项目,它在Activity启动时调用startForegroundService ,然后在服务上执行此操作: @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.i(TAG,”start”); […]