私はデスクトップ ヘッド ユニットを使用しており、会話をユニットにプッシュする次のコードがあります。フック/コールバックは必要ないため、保留中のインテントに 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 自動ダッシュボードに表示されると想定していますが、何も表示されません。しかし、モバイル デバイスには通知が表示されます。何が起こっているのか説明しましょう。車にプラグを差し込む前にメッセージを作成しています。したがって、このメソッドは、ユーザーが車から切断されたときに実行されます。ユーザーがアンドロイド自動に接続すると、この通知がダッシュボードに表示されることを期待していますが、そうではありませんが、まだモバイルデバイスの通知トレイに表示されています。