Tôi đã thực hiện một ứng dụng với hai nútandroid uri hình ảnh camera quay trở lại với một thất bại mang lại kết quả ResultInfo
- một để chọn một hình ảnh từ bộ sưu tập
- một để có một hình ảnh mới với camera
Quy trình chọn thư viện hoạt động tốt, nếu tôi chụp ảnh bằng máy ảnh, nó sẽ bị lỗi Failure delivering result ResultInfo
. Và có vẻ như hình ảnh không được viết cho thư mục.
Vì cả hai đều trả về cùng tôi có một trình xử lý để đối phó với kết quả;
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if (resultCode == RESULT_OK && data.getData() != null){
try {
Log.i("YADDA",data.getData().toString());
Uri targetUri = data.getData();
if (targetUri != null) {
//Log.i("YADDA",targetUri.toString());
myImage nsi = new myImage();
nsi.ThumbNail = getThumbnail(targetUri);
nsi.path = targetUri;
nsi.FileName = FileNameBase + "_" + String.valueOf(1 + photos.size());
photos.add(nsi);
}
} catch (IOException e) {
e.printStackTrace();
}
DrawImageGallery();
}
}
Trình xử lý nút;
nsbu1.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v){
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, 1);
}
});
nsbu2.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v){
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
// Uri myuri=Uri.fromFile(new File(Environment.getExternalStorageDirectory().getAbsolutePath(), FileNameBase + ".jpg"));
Uri myuri=Uri.fromFile(new File("/mnt/sdcard/tmp/" + FileNameBase + ".jpg"));
Log.i("YADDA", myuri.toString());
intent.putExtra(MediaStore.EXTRA_OUTPUT, myuri);
startActivityForResult(cameraIntent, 1);
}
});
Những điều tôi đã cố gắng:
- Tôi đã hai lần kiểm tra, biểu hiện cho quyền ghi vào điều SDcard
- lạ là, xử lý phải đúng, bởi vì một bức tranh từ các tác phẩm trưng bày phạt
- Một số phiên bản Android có lỗi với trình xử lý máy ảnh này, nhưng tôi đã kiểm tra, Nexus S của tôi không phải là một trong số đó.
- googled/sửa lỗi cho giờ và giờ
đầu ra Logcat;
09-01 10:02:59.085: ERROR/AndroidRuntime(1898): FATAL EXCEPTION: main
09-01 10:02:59.085: ERROR/AndroidRuntime(1898): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { act=inline-data (has extras) }} to activity {com.android.spot/com.android.spot.newsite}: java.lang.NullPointerException
09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at android.app.ActivityThread.deliverResults(ActivityThread.java:2532)
09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at android.app.ActivityThread.handleSendResult(ActivityThread.java:2574)
09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at android.app.ActivityThread.access$2000(ActivityThread.java:117)
09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:961)
09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at android.os.Handler.dispatchMessage(Handler.java:99)
09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at android.os.Looper.loop(Looper.java:130)
09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at android.app.ActivityThread.main(ActivityThread.java:3683)
09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at java.lang.reflect.Method.invokeNative(Native Method)
09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at java.lang.reflect.Method.invoke(Method.java:507)
09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at dalvik.system.NativeStart.main(Native Method)
09-01 10:02:59.085: ERROR/AndroidRuntime(1898): Caused by: java.lang.NullPointerException
09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at com.android.spot.newsite.onActivityResult(newsite.java:351)
09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at android.app.Activity.dispatchActivityResult(Activity.java:3908)
09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at android.app.ActivityThread.deliverResults(ActivityThread.java:2528)
09-01 10:02:59.085: ERROR/AndroidRuntime(1898): ... 11 more
http://www.softwarepassion.com/android-series-taking-photos-with-andorid-built-in-camera/ –
Cảm ơn đề xuất của bạn, tôi đã thử rằng, không có kết quả, cùng một lỗi. Thnx annyways! – Lectere
Bạn có thể đăng logcat có lỗi không? –