Android Auto 应用程序未显示在物理设备上

Android Auto app doesn't show up on physical device

目前正在测试 Android 汽车,我们现在正在物理设备(汽车)上进行测试。到目前为止,我已经设法为一个应用程序添加工作 Android 自动支持,我们正在其中绘制一些基本模板。这适用于模拟的 DHU,应用程序显示并可以使用。问题是,当我们在物理设备上进行测试时,它不会出现。我的应用程序当前显示在模拟的 DHU 中。所有必要的开发人员设置都已打开,所以这应该不是问题。

作为对照测试,我通过 Android Studio 使用 > Automotive > Media Service 创建了一个新项目,只是为了确保实际上可以在物理设备上进行测试。无需修改并在设备上全新安装,汽车就能识别该应用程序,并且该应用程序可通过电缆连接(物理设备)在汽车中使用。

我怀疑我在不同的清单中忽略了一些东西。

这是项目应用程序的共享清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.itf_aa.shared">
    
    <application>
        
        <meta-data
            android:name="com.google.android.gms.car.application"
            android:resource="@xml/automotive_app_desc" />
        
        <meta-data android:name="androidx.car.app.minCarApiLevel"
            android:value="1" />

        <service
            android:name="com.example.itf_aa.shared.MainGridService"
            android:exported="true">
            <intent-filter>
                <action android:name="androidx.car.app.CarAppService" />
            </intent-filter>
        </service>

    </application>

</manifest>

同时这是控制应用程序的共享清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapplication.shared">

<application android:appCategory="audio">

    <meta-data
        android:name="com.google.android.gms.car.application"
        android:resource="@xml/automotive_app_desc" />

    <!-- Main music service, provides media browsing and media playback services to
     consumers through MediaBrowserService and MediaSession. Consumers connect to it through
     MediaBrowser (for browsing) and MediaController (for playback control) -->
    <service
        android:name="com.example.myapplication.shared.MyMusicService"
        android:exported="true">
        <intent-filter>
            <action android:name="android.media.browse.MediaBrowserService" />
        </intent-filter>
    </service>

</application>

我怀疑问题出在意图过滤器中,似乎是差异制造者。有谁知道我是否可以在意图过滤器中使用其他任何东西,或者我的清单可能是错误的?这是我唯一怀疑是差异制造者的东西,因为我看不出应用程序类别如何使它有所不同。 为什么应用程序在我们使用“android.media.browse.MediaBrowserService”时显示物理设备,而在我们使用“androidx.car.app.CarAppService”时却不显示?

我很感激在这方面可能得到的任何帮助,所以感谢你抽出时间和提前帮助。如果我遗漏了什么或者您需要更多详细信息,请告诉我。 ❤️

原来可以找到答案here

回答:为了在物理设备上进行测试,您需要启动内部测试轨道并接受 Android Auto 附录。然后通过开发者控制台部署测试。

In order for your app to run on a real head unit (not the desktop head unit we provide), your app must be distributed through the Google Play Store. This ensures that your application has been tested and vetted for adherence to our guidelines. These guidelines ensure that your application is relevant to the car environment, as well as pass our driver distraction tests.

它与清单无关。仍然不确定为什么示例项目会绕过这个,但必须是 Google 应用程序的某种白名单。