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);
}
}
最初の問題は、「長い 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_1_0-sony-16\apk_files
私はそれを電話にインストールしました。「SampleExtensionService」はエミュレーターで正常に動作します。
私の推測では、アドオン サンプルは LiveView デバイスと互換性がありません。