【问题标题】:Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE cmp=android/com.android.internal.app.ResolverActivity }权限拒绝:启动 Intent { act=android.media.action.IMAGE_CAPTURE cmp=android/com.android.internal.app.ResolverActivity }
【发布时间】:2018-03-31 16:47:32
【问题描述】:

请帮忙!当我点击它时,相机无法打开。我正在使用android M,也许这就是问题所在。请帮我如何打开相机... 我正在尝试添加一些权限,但它仍然不起作用。我已经在使用了`

但它仍然不起作用。请帮忙

这是我的代码

public class TambahLaporActivity extends AppCompatActivity {

    ImageView imageView;
    Integer REQUEST_CAMERA = 1, SELECT_FILE = 0;

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

        imageView = (ImageView) findViewById(R.id.image);

        CardView imageView = (CardView) findViewById(R.id.cv);
        //set a clickListener on that view
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                SelectImage();
            }
        });
    }

    private void SelectImage() {
        final CharSequence[] items = { "Camera", "Gallery", "Cancel" };

        AlertDialog.Builder builder = new AlertDialog.Builder(TambahLaporActivity.this);
        builder.setTitle("Add Image");
        builder.setItems(items, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                if (items[i].equals("Camera")) {
                    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    startActivityForResult(intent, REQUEST_CAMERA);

                } else if (items[i].equals("Gallery")) {
                    Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                    intent.setType("image/*");
                    startActivityForResult(intent.createChooser(intent, "Select Type"), SELECT_FILE);
                } else if (items[i].equals("Cancel")) {
                    dialogInterface.dismiss();
                }
            }
        });
        builder.show();
    }

    @Override
    public void onActivityResult(int requenstCode, int resultCode, Intent data) {
        super.onActivityResult(requenstCode, resultCode, data);

        if (resultCode == Activity.RESULT_OK) {
            if (requenstCode == REQUEST_CAMERA) {
                Bitmap bitmap = (Bitmap) data.getExtras().get("data");
                imageView.setImageBitmap(bitmap);
            } else if (requenstCode == SELECT_FILE) {
                Uri selectedImageUri = data.getData();
                imageView.setImageURI(selectedImageUri);
            }
        }
    }
}

【问题讨论】:

  • 请发布整个 Java 堆栈跟踪,而不仅仅是错误消息。
  • @CommonsWare 它说已撤销权限 android.permission.CAMERA
  • @CommonsWare 你知道我应该写什么代码吗?
  • 您的代码很好(除了调用setImageURI(),这是一个单独的问题)。从清单中删除 CAMERA 权限。然后,完全卸载应用程序,然后再次运行应用程序。

标签: java android android-camera android-camera-intent


【解决方案1】:

我遇到了同样的问题,它与清单依赖项有关。我在清单中添加了相机权限

<uses-permission android:name="android.permission.CAMERA" />

这会在构建形成中产生问题,即

Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE cmp=android/com.android.internal.app.ResolverActivity }

然后我刚刚删除了该用户权限并添加了此用户功能

    <uses-feature
        android:name="android.hardware.camera"
        android:required="true" />

这对我来说很神奇。我希望这也可以帮助其他人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    • 2013-06-05
    • 2016-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多