我正在尝试向 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_1_0-sony-16\apk_files
我在手机上安装了它。“SampleExtensionService”在模拟器中运行良好。
我现在的假设是附加示例与 LiveView 设备不兼容。