问题标签 [xiaomi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 后台服务不适用于 MIUI 9.6 Redmi 4x
我一直在整个网络上搜索,了解为什么我的后台服务无法正常工作。当我关闭应用程序时,服务会被终止,而不会从 Brodcast 接收器中回调。本指南:https ://www.quora.com/How-do-I-keep-an-app-running-in-the-background-in-MIUI显示了三种不同的方法,但它们都不适合我。我确信该应用程序运行良好,因为它可以在模拟器上正常工作,相同的 API 24,并且它也可以与华为一起工作,同样的 API。
XML
服务
android - Admob 测试 ID 不断变化
最近我买了一部新手机(小米米 A2),当我尝试在上面测试我的应用程序时发生了非常奇怪的事情。Admob 测试 ID 不断变化。我像往常一样从日志中复制 ID(“使用 AdRequest.Builder.addTestDevice("XXXXXXXX") 在此设备上获取测试广告”)。我将它添加到 AdRequest.Builder。我运行该应用程序,起初一切正常,我得到了测试广告,但第二天 admob id 发生了变化,我得到了真实的。今天我得到了 3 个不同的 id(每次我重新启动 Android Studio 时都会发生)。我的其他手机永远不会发生这种情况。
我不知道它是否相关,但有时我的设备被识别为小米 Mi A2,有时它只显示 null(XXXX)。当它为空时我无法获得任何日志,但我可以正常安装应用程序。重新启动 Android Studio 有助于解决这个问题。
什么可能导致这种情况?这是 Android Studio 还是我的手机的问题?
编辑:我想我找到了原因。我的新设备具有 Android 8.1,显然 ANDROID_ID 对于每个应用程序都不同,如果签名密钥不同,则可以更改https://developer.android.com/about/versions/oreo/android-8.0-changes
android - Android Studio 将设备视为 null
在 Ubuntu Android Studio 上,设备显示为空。每次打开笔记本电脑时,我都需要运行以下控制台命令来添加权限:
输入我的密码,然后重复:
注意我使用的是小米手机。
有没有办法解决这个权限问题,所以我不必每次都这样做。
android - Android杀死小米、华为等后台服务
我需要让我的服务不可阻挡。我试图在启动命令上返回 START_STICKY,它在模拟器上运行良好,但是当从我的设备(小米 mi5s,Android 7)上的任务管理器中删除应用程序时,它不会再次创建自己。
编辑:我授予了自动启动权限并禁用了应用程序的电池保护规则。
编辑:我也尝试使用前台服务。然而,它也被杀死了。。
日志猫
我怎样才能做到这一点?
android - 如何使 AlertDialog 显示在屏幕边缘附近
我AlertDialog
在大多数安卓设备上都能正常工作。对话框从底部显示其布局,并绘制在屏幕底部边缘附近。但是,在小米米 8 设备上,对话框悬停在底部边缘上方。该设备具有圆角屏幕角,我认为对话框试图避免它们。然而,这在美学上看起来非常糟糕。如何创建对话框,使其显示在所有设备的屏幕边缘附近,而不管它们的屏幕角落如何?
不幸的是,stackoverflow 充满了关于制作圆角对话框的问题,我找不到任何有用的东西。最接近的是关于状态栏的这个问题,但那里的建议并没有改变AlertDialog
Mi8 上的对话行为。
为了展示这个问题,我做了一个最小的示例项目。在提交 763bc62ff9320227b806260e861b63d48cc2347d时,以下屏幕截图显示了 Mi8 上的问题,其中全屏模式使对话框漂浮在屏幕边缘上方,而且顶部的覆盖似乎也做了一些奇怪的事情。
小米 Mi8将 AlertDialog推到屏幕角落上方,因为 AlertDialog 被声明为浮动。将样式更改windowIsFloating = false
为对话框后,将显示在屏幕边缘附近:
不幸的是,此解决方案适用于小米,但不适用于另一款三星 SM-J530F,它在动画期间显示黑条:
为了避免动画中出现黑条,我找到的唯一方法就是制作windowFullScreen = true
. 但是,当这个值设置为 true 时,小米会做出一个奇怪的状态栏动画:
有没有办法让这个简单的动画在所有安卓设备上保持一致,而不必求助于几个硬编码的条件?
更新:正如建议的那样,我没有为我在提交 403808dcfb5d3fae52c51eb1b21593b79065ada7中更改的对话框设置动画,而是让对话框不设置动画,并通过约束布局集自行移动按钮:
android - NullPointerException: int android.widget.Editor$SelectionModifierCursorController.getMinTouchOffset()
这是一个非常奇怪的小米设备的操作系统异常。即使我确实有 Fabric 提供的日志,堆栈跟踪也不会引用我的任何代码。
下面是 crashalytics(Fabric) 中报告的崩溃详细信息,
21K 崩溃
小米设备上的所有崩溃
在 Android OS 版本 6、7 和 8 上崩溃
崩溃日志:
类似参考:
https://issuetracker.google.com/issues/37127697
带有牛轧糖的 java.lang.NullPointerException
也在小米官方论坛上提问http://en.miui.com/forum.php?mod=viewthread&tid=4595164
请尽快提供任何可行的解决方案。因为用户一定不会对这些崩溃感到满意。
提前致谢。
android - 在中文 ROM 中运行前台服务
我做了一个前台服务来不断扫描我周围的 BLE 设备。出于某种原因,它似乎可以在我的库存 android 设备 Google 像素和三星 S9+ 上完美运行。
但是最近我用中文ROM(Oneplus 6T,小米Poco F1)测试了该应用程序,前台服务似乎在几分钟后就被杀死了。我已经使用 workmanager 重新启动服务,但应用程序没有重新启动,而是收到了应用程序的错误报告。
同样在android 8.0(小米红米3s prime)以下的中文ROM设备上,简单的服务不起作用,我还需要在那里使用前台服务。有什么办法可以解决这个问题吗?
android - 在 MI 或小米手机 android 上获取 mac 地址
我正在使用以下代码获取移动设备的 mac 地址,并且它在 android 设备上运行良好。我从 stackoverflow 获得的获取 mac 地址的代码。但是在 MI 或小米手机上获取 mac 地址不起作用..请指导。下面是我的代码。用户通过输入他的手机号码来访问该应用程序,并将在 url 中发送 mac 地址