java - 如何检测手机是否连接到android auto

标签 java android alarmmanager android-auto

我正在开发一个音频播放器应用,我需要确定用户的设备何时连接到 Android Auto。

该应用程序有一个闹钟,我想确保它不会在用户开车时响起。

要确定我的音乐服务 (MediaBrowserService) 是否正常工作,我可以在 onCreate 和 onDestroy 中使用一些标志,或者注册 reciver for "com.google.android.gms.car.media.STATUS" action - 但这是个坏主意,因为闹钟可以随时触发。不仅在我的音乐服务运行时。

对于警报,我使用 AlarmManager 和未决 Intent 。

也许有人遇到过类似的问题?

最佳答案

您可以像在谷歌示例中那样检查 UIMode:

https://github.com/googlesamples/android-UniversalMusicPlayer/blob/master/mobile/src/main/java/com/example/android/uamp/utils/CarHelper.java#L106

public static boolean isCarUiMode(Context c) {
    UiModeManager uiModeManager = (UiModeManager) c.getSystemService(Context.UI_MODE_SERVICE);
    if (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_CAR) {
        LogHelper.d(TAG, "Running in Car mode");
        return true;
    } else {
        LogHelper.d(TAG, "Running on a non-Car mode");
        return false;
    }
}

然后在运行警报之前检查isCarUiMode结果

关于java - 如何检测手机是否连接到android auto,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36293866/

相关文章:

Android Studio 预期的类或包错误

java - SOAP 响应正文是没有任何节点的纯文本

java - Groovy:将标准输出重定向到文件不起作用

java - Hibernate无法删除父/子自连接实体

android - android 中的 TileMap

android - 如何每 5 分钟启动一次调度程序,在 Android 8(Oreo)中没有任何失败 - (尝试过的 Jobscheduler 最小限制是 15 分钟并且不可靠)

android - 在打瞌睡模式下启动时 Activity 保持黑色

java - 如何将从串口接收到的字节转换为十六进制?

Android ListView 文本在加载时消失

java - 我想让我的 Android 应用程序在后台 24/7 运行,除非被用户关闭..我该怎么办..?