これは、Android アプリから写真を撮り、Facebook の壁にアップロードするための私のコードです。
photo_up=(Button)findViewById(R.id.camera_foto_button);
photo_up.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
});
switch(requestCode){
case CAMERA_REQUEST:{
Bitmap bmp = (Bitmap) data.getExtras().get("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byteArray = stream.toByteArray(); // convert camera photo to byte array
Bundle params = new Bundle();
params.putByteArray("picture", byteArray);
params.putString("message", "Have fun");
Utility.mAsyncRunner.request("me/photos", params,"POST", new PhotoUploadListener(), null);
break;
写真が撮られると、2秒後に強制的に閉じられます。これはログです:
05-17 18:04:47.756: E/AndroidRuntime(272): Uncaught handler: thread Thread-8 exiting due to uncaught exception
05-17 18:04:47.756: E/AndroidRuntime(272): java.lang.NullPointerException
05-17 18:04:47.756: E/AndroidRuntime(272): at com.myco.android.myapp.Gallery1$PhotoUploadListener.onComplete(Gallery1.java:368)
05-17 18:04:47.756: E/AndroidRuntime(272): at com.facebook.android.AsyncFacebookRunner$2.run(AsyncFacebookRunner.java:254)
E/dalvikvm(272): Unable to open stack trace file '/data/anr/traces.txt': Permission denied
しかもSDカードに画像が保存されないのも欲しい。必要なすべての権限がマニフェストに追加されました。