Cordova 插件 Android 本地通知使用联系人图片
Cordova plugin Android local notification use contact image
我正在使用以下
- Cordova 3.7.0
- Android (21)
- local notification plugin
- grabbing contacts via contacts plugin
从联系人中我获取联系人图片 uri 看起来像
content://com.android.contacts/contacts/2/photo
当我尝试将 notification.icon 设置为 uri 时,应用程序崩溃并且没有显示任何通知。
知道我需要如何重新格式化 uri 才能允许本地通知工作吗?
最佳
我找到了一个解决方案,其中包括更改实际插件AssetUtil.java
Uri parse (String path) {
if (path.startsWith("res:")) {
return getUriForResourcePath(path);
} else if (path.startsWith("file:///")) {
return getUriFromPath(path);
} else if (path.startsWith("file://")) {
return getUriFromAsset(path);
} else if (path.startsWith("http")){
return getUriFromRemote(path);
} else if (path.startsWith("content://")){ //<--- Add the following lines
return getUriFromContact(path);
}
return Uri.EMPTY;
}
private Uri getUriFromContact(String path) { //<--- Add this method
Uri photoUri;
photoUri = Uri.parse(path);
return photoUri;
}
我正在使用以下
- Cordova 3.7.0
- Android (21)
- local notification plugin
- grabbing contacts via contacts plugin
从联系人中我获取联系人图片 uri 看起来像
content://com.android.contacts/contacts/2/photo
当我尝试将 notification.icon 设置为 uri 时,应用程序崩溃并且没有显示任何通知。
知道我需要如何重新格式化 uri 才能允许本地通知工作吗?
最佳
我找到了一个解决方案,其中包括更改实际插件AssetUtil.java
Uri parse (String path) {
if (path.startsWith("res:")) {
return getUriForResourcePath(path);
} else if (path.startsWith("file:///")) {
return getUriFromPath(path);
} else if (path.startsWith("file://")) {
return getUriFromAsset(path);
} else if (path.startsWith("http")){
return getUriFromRemote(path);
} else if (path.startsWith("content://")){ //<--- Add the following lines
return getUriFromContact(path);
}
return Uri.EMPTY;
}
private Uri getUriFromContact(String path) { //<--- Add this method
Uri photoUri;
photoUri = Uri.parse(path);
return photoUri;
}