by Guest » 17 Jan 2025, 04:36
Ich habe begonnen, an einer Android Auto-Funktion für eine App zu arbeiten, mit der ich eine Benachrichtigung für den Fahrer hinzufügen möchte, wenn etwas eintrifft. Hierfür verwende ich die Nachrichtenvorlage, die einen Titel, ein Logo und eine Textnachricht enthält. Nachfolgend finden Sie die Implementierung der App
Code: Select all
public class CarScreen extends Screen {
private static String message = "We will notify you!!";
private int icon = R.drawable.ic_ts_icon_logo;
private int templateType = 1;
public CarScreen(CarContext carContext) {
super(carContext);
// Initialize the BroadcastReceiver
CarBroadcastReceiver carBroadcastReceiver = new CarBroadcastReceiver(this);
// Register the BroadcastReceiver
IntentFilter filter = new IntentFilter();
filter.addAction(Constants.ANDROID_AUTO_ALERT);
filter.addAction(Constants.ANDROID_AUTO_ARROW);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
carContext.registerReceiver(carBroadcastReceiver, filter, Context.RECEIVER_NOT_EXPORTED);
} else {
carContext.registerReceiver(carBroadcastReceiver, filter);
}
}
@NonNull
@Override
public Template onGetTemplate() {
Template template = null;
if (templateType == 1) {
CarIcon carIcon = CommonFunctions.createCarIcon(getCarContext(), icon);
template = new MessageTemplate.Builder(message)
.setTitle("Warning")
.setHeaderAction(Action.APP_ICON)
.setIcon(carIcon)
.build();
} else if (templateType == 2) {
iconList.clear();
counterList.clear();
}
assert template != null;
return template;
}
public void updateUI(String newMessage, int newIcon) {
// Update the UI based on the received data
message = newMessage;
this.icon = newIcon;
templateType = 1;
invalidate();
}}
Im Android-Manifest:
automotive_app_desc-Datei:
Ich habe die gleiche Funktion auf der Desktop-Haupteinheit getestet und sie funktionierte einwandfrei. Ich stoße jedoch auf ein Problem, bei dem die Aufgabe während der Fahrt nicht abgeschlossen werden kann, insbesondere während des App-Downloads aus dem Play Store.
Ich bin mir nicht sicher, wie ich das Problem auf Debug-Ebene reproduzieren kann auf meinem lokalen Setup. Wenn jemand eine Lösung oder Ideen hat, wäre ich sehr dankbar für Ihren Beitrag.
Ich habe begonnen, an einer Android Auto-Funktion für eine App zu arbeiten, mit der ich eine Benachrichtigung für den Fahrer hinzufügen möchte, wenn etwas eintrifft. Hierfür verwende ich die Nachrichtenvorlage, die einen Titel, ein Logo und eine Textnachricht enthält. Nachfolgend finden Sie die Implementierung der App
[code] public class CarScreen extends Screen {
private static String message = "We will notify you!!";
private int icon = R.drawable.ic_ts_icon_logo;
private int templateType = 1;
public CarScreen(CarContext carContext) {
super(carContext);
// Initialize the BroadcastReceiver
CarBroadcastReceiver carBroadcastReceiver = new CarBroadcastReceiver(this);
// Register the BroadcastReceiver
IntentFilter filter = new IntentFilter();
filter.addAction(Constants.ANDROID_AUTO_ALERT);
filter.addAction(Constants.ANDROID_AUTO_ARROW);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
carContext.registerReceiver(carBroadcastReceiver, filter, Context.RECEIVER_NOT_EXPORTED);
} else {
carContext.registerReceiver(carBroadcastReceiver, filter);
}
}
@NonNull
@Override
public Template onGetTemplate() {
Template template = null;
if (templateType == 1) {
CarIcon carIcon = CommonFunctions.createCarIcon(getCarContext(), icon);
template = new MessageTemplate.Builder(message)
.setTitle("Warning")
.setHeaderAction(Action.APP_ICON)
.setIcon(carIcon)
.build();
} else if (templateType == 2) {
iconList.clear();
counterList.clear();
}
assert template != null;
return template;
}
public void updateUI(String newMessage, int newIcon) {
// Update the UI based on the received data
message = newMessage;
this.icon = newIcon;
templateType = 1;
invalidate();
}}
[/code]
Im Android-Manifest:
[code]
[/code]
automotive_app_desc-Datei:
[code]
[/code]
Ich habe die gleiche Funktion auf der Desktop-Haupteinheit getestet und sie funktionierte einwandfrei. Ich stoße jedoch auf ein Problem, bei dem die Aufgabe während der Fahrt nicht abgeschlossen werden kann, insbesondere während des App-Downloads aus dem Play Store.
Ich bin mir nicht sicher, wie ich das Problem auf Debug-Ebene reproduzieren kann auf meinem lokalen Setup. Wenn jemand eine Lösung oder Ideen hat, wäre ich sehr dankbar für Ihren Beitrag.