Android захватить изображение с камеры и поделиться с Facebook SDK - PullRequest
4 голосов
/ 27 ноября 2011

Я пытаюсь загрузить изображение (снятое камерой) с помощью Facebook Dialog в Facebook SDK. Но он падает после входа в Facebook. Я не могу найти проблему.

Вот мой код

protected void postStatus() {
    byte[] data = null;
try {
    ContentResolver cr = getContentResolver();
    InputStream fis = cr.openInputStream(MyCarDealActivity.imageUri);
    Bitmap bi = BitmapFactory.decodeStream(fis);
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bi.compress(Bitmap.CompressFormat.JPEG, 100, baos);
    data = baos.toByteArray();              
} catch (FileNotFoundException e) {
    e.printStackTrace();
}
    Bundle parameters = new Bundle();
    parameters.putString("method", "photos.upload");          
    parameters.putByteArray("picture", data);
    parameters.putString("caption", "Hello");
    facebook.dialog(FacebookScreen.this, "me/photos", parameters,
            new DialogListener() {

                @Override
                public void onCancel() {

                }

                @Override
                public void onComplete(Bundle values) {
                    Toast.makeText(FacebookScreen.this, "Published",
                            Toast.LENGTH_LONG).show();
                    finish();
                }

                @Override
                public void onError(DialogError e) {
                    Toast.makeText(FacebookScreen.this,
                            "Error :" + e.getLocalizedMessage(),
                            Toast.LENGTH_LONG).show();
                    finish();
                }

                @Override
                public void onFacebookError(FacebookError e) {
                    Toast.makeText(FacebookScreen.this,
                            "Error :" + e.getLocalizedMessage(),
                            Toast.LENGTH_LONG).show();
                    finish();
                }

            });
}

Вот журнал ошибок

11-27 13:40:33.434: ERROR/AndroidRuntime(376): java.lang.NullPointerException
11-27 13:40:33.434: ERROR/AndroidRuntime(376):     at java.net.URLEncoder.encode(URLEncoder.java:53)
11-27 13:40:33.434: ERROR/AndroidRuntime(376):     at com.facebook.android.Util.encodeUrl(Util.java:85)
11-27 13:40:33.434: ERROR/AndroidRuntime(376):     at com.facebook.android.Facebook.dialog(Facebook.java:609)
11-27 13:40:33.434: ERROR/AndroidRuntime(376):     at com.kchaddock.mycardeal.FacebookScreen.postStatus(FacebookScreen.java:67)
11-27 13:40:33.434: ERROR/AndroidRuntime(376):     at com.kchaddock.mycardeal.FacebookScreen$1.onComplete(FacebookScreen.java:34)
11-27 13:40:33.434: ERROR/AndroidRuntime(376):     at com.facebook.android.Facebook$1.onComplete(Facebook.java:304)
11-27 13:40:33.434: ERROR/AndroidRuntime(376):     at com.facebook.android.FbDialog$FbWebViewClient.shouldOverrideUrlLoading(FbDialog.java:134)
11-27 13:40:33.434: ERROR/AndroidRuntime(376):     at android.webkit.CallbackProxy.uiOverrideUrlLoading(CallbackProxy.java:216)
11-27 13:40:33.434: ERROR/AndroidRuntime(376):     at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:323)
11-27 13:40:33.434: ERROR/AndroidRuntime(376):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-27 13:40:33.434: ERROR/AndroidRuntime(376):     at android.os.Looper.loop(Looper.java:123)
11-27 13:40:33.434: ERROR/AndroidRuntime(376):     at android.app.ActivityThread.main(ActivityThread.java:3683)
11-27 13:40:33.434: ERROR/AndroidRuntime(376):     at java.lang.reflect.Method.invokeNative(Native Method)
11-27 13:40:33.434: ERROR/AndroidRuntime(376):     at java.lang.reflect.Method.invoke(Method.java:507)
11-27 13:40:33.434: ERROR/AndroidRuntime(376):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-27 13:40:33.434: ERROR/AndroidRuntime(376):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-27 13:40:33.434: ERROR/AndroidRuntime(376):     at dalvik.system.NativeStart.main(Native Method)

Заранее спасибо

1 Ответ

1 голос
/ 24 января 2012

Попробуйте использовать следующее вместо facebook.dialog:

facebook.request("me/feed", params, "POST");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...