我正在制作一款Android应用,它以多种方式使用 Facebook SDK ,包括将照片上传到群组。我有一个工作代码,但想要一些我无法添加的功能。
这是我的 java 代码:
public void PostToGroup(Activity activity, Bitmap image, final String caption, final PostDelegate postDelegate)
{
if(!facebookManager.hasPublishPermission())
{
facebookManager.getPublishPermission(activity);
}
if(facebookManager.hasPublishPermission()) {
FacebookSdk.setOnProgressThreshold(1);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
Bundle params = new Bundle();
params.putString("message", caption);
params.putByteArray("source", byteArray);
GraphRequest.Callback gCallBack = new GraphRequest.OnProgressCallback() {
@Override
public void onProgress(long current, long max) {
Log.e("Progress", String.valueOf(current) + "---" + String.valueOf(max));
}
public void onCompleted(GraphResponse response) {
JSONObject jsonObject = response.getJSONObject();
if(jsonObject.has("id")) {
postDelegate.onSuccess(jsonObject.optString("id"));
}
else
{
postDelegate.onError();
}
}
};
final GraphRequest graphRequest = new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/" + GROUP_ID + "/photos",
params,
HttpMethod.POST,
gCallBack);
graphRequest.executeAsync();
}
}
public interface PostDelegate{
void onSuccess(String id);
void onError();
}
此代码适用于上传图片,但我希望获取上传进度并在上传图片时将其显示在某处。
我正在尝试使用 OnProgressCallback()方法,它适用于小尺寸图像但是当我将它用于大文件时,电流值会随机增加,但每次都会挂起它达到827。
我已经搜索了问题并发现了一个类似的问题 - [这一个] [1]。
我试过了,但答案已经超过3年了,而且我无法做到当前版本的Facebook SDK中的答案。
希望这里有人可以帮助我。