开发Android Auto自定义应用

Dem*_*eCT 4 android-auto

我是Android开发人员,我正在尝试开发一个自定义Android Auto应用程序,它可以对手机屏幕进行简单的镜像.我知道目前API仅适用于音乐和消息传递应用程序,但我会为镜像编写一个简单的"hello world".我按照Google入门教程进行操作,并使用Google提供的桌面主机(DHU)(在developer.android.com/training/auto/testing/index.html)

但是当我点击显示屏底部的最后一个按钮并选择"所有汽车应用程序"时,我的应用程序不会出现在列表中.

所有汽车应用

例如,如果在三星平板电脑(SM-T555)中启动Android Auto,则DHU会列出以下应用:

com.google.android.gms,地图,系统用户界面,视频,SampleAuthenticatorService,SecureSampleAuthService,屏幕截图,Android自动,电话,媒体,返回Google,三星计费,Google App,Google Play音乐,音乐

三星平板电脑中的可用汽车应用

如何制作Android Auto中可用应用列表中显示的应用?是否可以在Android Auto中为自定义应用镜像?

Ald*_*pez 8

创建这样的服务:

public class HelloWorldService extends CarActivityService {

    @Override
    public Class<? extends CarActivity> getCarActivity() {
        return HelloWorldAutoActivity.class;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后将服务添加到清单中,如下所示:

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

    <service
        android:name=".HelloWorldService"
        android:exported="true"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="com.google.android.gms.car.category.CATEGORY_PROJECTION" />
            <category android:name="com.google.android.gms.car.category.CATEGORY_PROJECTION_OEM" />
        </intent-filter>
    </service>
Run Code Online (Sandbox Code Playgroud)

最后在res文件夹下创建一个名为automotive_app_desc的xml文件:

<automotiveApp>
    <uses name="service" />
    <uses name="projection" />
    <uses name="notification" />
</automotiveApp>
Run Code Online (Sandbox Code Playgroud)

您的HelloWorldAutoActivity.class将作为您的MainActivity.

  • @ J1and1-尝试使用此jar:https://app.box.com/s/v13xfv32qtkdafo4splwltime6ut4l22并按以下方式导入:import com.google.android.apps.auto.sdk。*; 我没有机会研究可用的类/函数/等,因为它正在反向增强,不希望有任何官方支持 (2认同)