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

Ser*_*gey 4 java android alarmmanager android-auto

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

该应用程序具有警报功能,我想确保它不会在用户开车时响起。

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

对于警报,我使用AlarmManager和待定意图。

也许有人面临类似的问题?

Ken*_*mir 6

您可以像谷歌示例一样检查 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

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

  • 有人测试过这个吗?我总是变得“假”。 (2认同)