我正在尝试使用SDK v3.6 ShareDialog将图像发布到Facebook。
结果我得到了com.facebook.FacebookException:检索图像附件时出错。
我就像Doc说的那样:
private void ShareDialog(){
OpenGraphAction action = GraphObject.Factory.create(OpenGraphAction.class);
//action.setProperty("game", "https://example.com/cooking-app/meal/Lamb-Vindaloo.html");
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
List<Bitmap> images = new ArrayList<Bitmap>();
images.add(bitmap);
FacebookDialog shareDialog = new FacebookDialog.OpenGraphActionDialogBuilder(this, action, "cooking-app:cook", "game")
.setImageAttachmentsForAction(images, true)
.build();
uiHelper.trackPendingDialogCall(shareDialog.present());
}
我知道我需要在AndroidManifest.xml中添加<provider android:authorities="com.facebook.app.NativeAppCallContentProvider{Facebook-app-id}"
android:name="com.facebook.NativeAppCallContentProvider" />
,但是当我这样做时,会出现错误代码,Multiple annotations found at this line:
- Tag <provider> attribute authorities has invalid character '{'.
- Exported content providers can provide access to potentially sensitive
data
如何正确添加提供商?
答案 0 :(得分:5)
在provider
定义中,{Facebook-app-id}
,您必须填写Facebook提供的应用ID。
答案 1 :(得分:3)
将内容提供商添加到您的清单。
<provider
android:name="com.facebook.NativeAppCallContentProvider"
android:authorities="com.facebook.app.NativeAppCallContentProvider{Facebook-App-Id}"
android:exported="true" />
确保 exported = true (如上所述)