Я пытаюсь отправить уведомления на устройства Sony LiveWare
Я установил: com.sonyericsson.extras.liveware.extension.notificationsample, но при попытке его запустить получаю ошибки и исключения:
- Загрузите действие предпочтения на устройство
- Установите флажок «Активно» на экране настроек.
В SampleExtensionService вызывается следующий метод:
private void addData() {
Random rand = new Random();
int index = rand.nextInt(5);
String name = NAMES[index];
String message = MESSAGE[index];
long time = System.currentTimeMillis();
long sourceId = NotificationUtil
.getSourceId(this, EXTENSION_SPECIFIC_ID);
if (sourceId == NotificationUtil.INVALID_ID) {
Log.e(LOG_TAG, "Failed to insert data");
return;
}
String profileImage = ExtensionUtils.getUriString(this,
R.drawable.widget_default_userpic_bg);
ContentValues eventValues = new ContentValues();
eventValues.put(Notification.EventColumns.EVENT_READ_STATUS, false);
eventValues.put(Notification.EventColumns.DISPLAY_NAME, name);
eventValues.put(Notification.EventColumns.MESSAGE, message);
eventValues.put(Notification.EventColumns.PERSONAL, 1);
eventValues.put(Notification.EventColumns.PROFILE_IMAGE_URI, profileImage);
eventValues.put(Notification.EventColumns.PUBLISHED_TIME, time);
eventValues.put(Notification.EventColumns.SOURCE_ID, sourceId);
try {
getContentResolver().insert(Notification.Event.URI, eventValues);
} catch (IllegalArgumentException e) {
Log.e(LOG_TAG, "Failed to insert event", e);
} catch (SecurityException e) {
Log.e(LOG_TAG, "Failed to insert event, is Live Ware Manager installed?", e);
} catch (SQLException e) {
Log.e(LOG_TAG, "Failed to insert event", e);
}
}
Первая проблема заключается в том, что "long sourceId = NotificationUtil.getSourceId(this, EXTENSION_SPECIFIC_ID)" возвращает -1
Я не знаю, как изменить, но в документах говорится, что это необязательное поле. Поэтому я удалил его, чтобы посмотреть, смогу ли я получить что-то еще:
При удалении кода sourceId я получаю исключение при вызове вставки: «java.lang.SecurityException: у вас недостаточно прав для выполнения вставки»
Моя среда: HTC One V в паре с наручным пейджером LiveView http://www.amazon.co.uk/Sony-Ericsson-0001516170-LIVE-VIEW/dp/B00477X6DA У меня установлены следующие приложения LiveView SmartConnect (LiveWare Manager)
Я был бы признателен за любую помощь в том, чтобы заставить этот образец работать, или если кто-нибудь знает более прямой подход к созданию простых текстовых уведомлений для LiveWare.
РЕДАКТИРОВАТЬ: Достигнут некоторый прогресс. Нашел эмулятор здесь: android-sdk\add-ons\addon-sony_add-on_sdk
private void addData() {
Random rand = new Random();
int index = rand.nextInt(5);
String name = NAMES[index];
String message = MESSAGE[index];
long time = System.currentTimeMillis();
long sourceId = NotificationUtil
.getSourceId(this, EXTENSION_SPECIFIC_ID);
if (sourceId == NotificationUtil.INVALID_ID) {
Log.e(LOG_TAG, "Failed to insert data");
return;
}
String profileImage = ExtensionUtils.getUriString(this,
R.drawable.widget_default_userpic_bg);
ContentValues eventValues = new ContentValues();
eventValues.put(Notification.EventColumns.EVENT_READ_STATUS, false);
eventValues.put(Notification.EventColumns.DISPLAY_NAME, name);
eventValues.put(Notification.EventColumns.MESSAGE, message);
eventValues.put(Notification.EventColumns.PERSONAL, 1);
eventValues.put(Notification.EventColumns.PROFILE_IMAGE_URI, profileImage);
eventValues.put(Notification.EventColumns.PUBLISHED_TIME, time);
eventValues.put(Notification.EventColumns.SOURCE_ID, sourceId);
try {
getContentResolver().insert(Notification.Event.URI, eventValues);
} catch (IllegalArgumentException e) {
Log.e(LOG_TAG, "Failed to insert event", e);
} catch (SecurityException e) {
Log.e(LOG_TAG, "Failed to insert event, is Live Ware Manager installed?", e);
} catch (SQLException e) {
Log.e(LOG_TAG, "Failed to insert event", e);
}
}
0-sony-16\apk_files Я установил это на телефон. «SampleExtensionService» отлично работает в эмуляторе.
Теперь я предполагаю, что образец надстройки несовместим с устройством LiveView.