【问题标题】:Android Studio Camera Use Activity did not found未找到 Android Studio 相机使用活动
【发布时间】:2016-12-03 21:26:30
【问题描述】:

您好,使用 android studio 为 android 构建了一个简单的应用程序,该应用程序使用我的设备相机捕获图像并将其存储到画廊,但我收到此错误:。

 FATAL EXCEPTION: main
                                                                              Process: com.industry.onelove.camerause, PID: 7897
                                                                              android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.media.action..IMAGE_CAPTION (has extras) }
                                                                                  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1809)
                                                                                  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1523)
                                                                                  at android.app.Activity.startActivityForResult(Activity.java:4224)
                                                                                  at android.app.Activity.startActivityForResult(Activity.java:4183)
                                                                                  at com.industry.onelove.camerause.HomeActivity.takePhoto(HomeActivity.java:74)
                                                                                  at com.industry.onelove.camerause.HomeActivity.access$000(HomeActivity.java:22)
                                                                                  at com.industry.onelove.camerause.HomeActivity$1.onClick(HomeActivity.java:42)
                                                                                  at android.view.View.performClick(View.java:5610)
                                                                                  at android.view.View$PerformClick.run(View.java:22260)
                                                                                  at android.os.Handler.handleCallback(Handler.java:751)
                                                                                  at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                  at android.os.Looper.loop(Looper.java:154)
                                                                                  at android.app.ActivityThread.main(ActivityThread.java:6077)
                                                                                  at java.lang.reflect.Method.invoke(Native Method)
                                                                                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
                                                                                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

我的代码是:

public class HomeActivity extends Activity {

    private Button button;
    private static String logtag = "CameraAp";
    private static  int Take_pic = 1 ;
    private Uri imageUri;

    //ONCREATE
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);

        button =(Button) findViewById(R.id.button);
        button.setOnClickListener(cameraListener);
    }
    //BUTTONS LISTENER
    private View.OnClickListener cameraListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            takePhoto(v);
        }
    };

    String mCurrentPhotoPath;

    private File createImageFile() throws IOException {//CREATE FILEPATH WITH DATEFORMAT USE (FROM ANDROID API)
        // Create an image file name
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
        String imageFileName = "JPEG_" + timeStamp + "_";
        File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
        File image = File.createTempFile(
                imageFileName,
                ".jpg",
                storageDir
        );

        // Save a file: path for use with ACTION_VIEW intents
        mCurrentPhotoPath = image.getAbsolutePath();
        return image;
    }

    private void takePhoto(View v){
        Intent intent = new Intent("android.media.action..IMAGE_CAPTION");
        try {
            createImageFile();
        }catch(IOException io){
            Log.e(logtag, io.toString());
        }
        File photo = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),mCurrentPhotoPath);
        imageUri = Uri.fromFile(photo);
        intent.putExtra(MediaStore.EXTRA_OUTPUT , imageUri);
        startActivityForResult(intent , Take_pic);
    }

    @Override
    protected void onActivityResult( int requestCode , int resultCode , Intent intent)
    {
        super.onActivityResult(requestCode , resultCode, intent);
        if(resultCode == Activity.RESULT_OK){
            Uri selectedImage = imageUri;
            getContentResolver().notifyChange(selectedImage,null);

            ImageView imageView = (ImageView) findViewById(R.id.image_view);
            ContentResolver cr = getContentResolver();
            Bitmap bitmap;
            try{
                bitmap = MediaStore.Images.Media.getBitmap(cr , selectedImage);//CREATE THE BITMAP
                imageView.setImageBitmap(bitmap);//GIVE IMAGE TO IMAGEVIEW AND SHOW TO USER
                MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, mCurrentPhotoPath , "auga me mpeikon");//SAVE IMAGE TO GALERY
            }catch(Exception exp){
                Log.e(logtag, exp.toString());
            }
            Toast.makeText(HomeActivity.this , selectedImage.toString(),Toast.LENGTH_LONG).show();

        }
    }


    //IN ORDER TO SAVE THE IMAGE WE CAN ALSO USE THE API READY FUCTION WHICH SAVES THE FILE TO THE DIRECTORY THROUGH OUR STRING CURRENTPATH
    private void galleryAddPic() {
        Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
        File f = new File(mCurrentPhotoPath);
        Uri contentUri = Uri.fromFile(f);
        mediaScanIntent.setData(contentUri);
        this.sendBroadcast(mediaScanIntent);
    }
}

我也已导入我的清单:

<uses-permission android:name="android.permission.CAMERA" />
            <uses-feature android:name="android.hardware.camera2" />
            <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

有人知道为什么吗?

【问题讨论】:

    标签: java android android-studio fatal-error


    【解决方案1】:
    Intent intent = new Intent("android.media.action..IMAGE_CAPTION");
    

    这不是一个有效的Intent 操作。或者,至少,您的设备上没有支持它的应用程序。

    也许你的意思是:

    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    

    【讨论】:

    • 是的,你写的没有注意到......但仍然有这个错误:
    • 如果在更改意图后出现此错误,则表示设备没有摄像头。或者先检查设备是否也有摄像头。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多