首页 > 解决方案 > 为什么调用 MediaStore.ACTION_IMAGE_CAPTURE 意图后图像的路径为空?

问题描述

File fullPath;
public void mybutton_testfullsize(View v)   {

    Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

    File directory = new File(this.getApplicationContext().getExternalFilesDir("/Data/"), "MyPublicFolder");

    if (!directory.exists()) {
        directory.mkdirs();
    }

    File fullPath = new File(directory,   "pic.png");
    Uri photoURI = FileProvider.getUriForFile(this, this.getApplicationContext().getPackageName() + ".provider", fullPath);

    takePicture.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
    startActivityForResult(takePicture, 2);
}

我正在使用上述方法拍照并将其保存在给定的路径中。在 ActivityResult 我想使用变量 fullPath,但它始终为空。

protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
    switch (requestCode) {
         case 2:   if(fullPath.exists()){...}}

fullPath.exists() 总是给出 NullpointerException。如何访问路径?我不想硬编码它,因为我想实现一个应用程序,路径会发生变化。

标签: androidandroid-studioandroid-layoutandroid-fragmentsandroid-intent

解决方案


推荐阅读