2

私はデスクトップ ヘッド ユニットを使用しており、会話をユニットにプッシュする次のコードがあります。フック/コールバックは必要ないため、保留中のインテントに null を設定することに注意してください。Android autoがアクティブなときにのみ通知を送信したい。動作しないコードは次のとおりです。

private void pushAndroidAutoUnreadConversation(String msg) {
// Build a RemoteInput for receiving voice input in a Car Notification
RemoteInput remoteInput = new RemoteInput.Builder(MY_VOICE_REPLY_KEY)
.setLabel(msg)
.build();

// Create an unread conversation object to organize a group of messages
// from a particular sender.
UnreadConversation.Builder unreadConvBuilder =
new UnreadConversation.Builder("my apps conversation")
  .setReadPendingIntent(null)
  .setReplyAction(null, remoteInput);

unreadConvBuilder.addMessage(msg)
.setLatestTimestamp(System.currentTimeMillis());


Bitmap largeIcon = BitmapFactory.decodeResource(getResources(),
R.drawable.icon);


NotificationCompat.Builder notificationBuilder =
new NotificationCompat.Builder(getApplicationContext())
  .setSmallIcon(R.drawable.icon)
  .setLargeIcon(largeIcon).setContentTitle(msg);

notificationBuilder.extend(new NotificationCompat.CarExtender()
.setUnreadConversation(unreadConvBuilder.build()));

NotificationManagerCompat msgNotificationManager =
NotificationManagerCompat.from(this);
msgNotificationManager.notify("my_apps_tag",
Integer.parseInt(MY_VOICE_REPLY_KEY), notificationBuilder.build());

}

MY_VOICE_REPLY_KEY は単なる数字で、9675 です

ここに私のbuild.gradleファイルがあります:

プラグインを適用: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "org.myapp.easy"
        minSdkVersion 9
        targetSdkVersion 21
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('old_proguard-android.txt')
        }
    }
}

dependencies {
    compile files('libs/GoogleAdMobAdsSdk-4.1.1.jar')
    compile 'com.android.support:support-v4:21.0.2'
}

マニフェストのセクションは次のとおりです。

   <application
        android:allowBackup="false"
        android:icon="@drawable/icon"
        android:label="@string/app_name" >

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

そして、ここに私がxmlフォルダに入れたautomobile_app_desc.xmlがあります:

 <automotiveApp>
    <uses name="notification"/>
</automotiveApp>

私はこちらの公式チュートリアルに従っています

通知を作成するときに、物理的な通知が Android 自動ダッシュボードに表示されると想定していますが、何も表示されません。しかし、モバイル デバイスには通知が表示されます。何が起こっているのか説明しましょう。車にプラグを差し込む前にメッセージを作成しています。したがって、このメソッドは、ユーザーが車から切断されたときに実行されます。ユーザーがアンドロイド自動に接続すると、この通知がダッシュボードに表示されることを期待していますが、そうではありませんが、まだモバイルデバイスの通知トレイに表示されています。

4

1 に答える 1