打开对话框不会打开相机应用程序

阿米尔251251

我的应用程序中有一个按钮,它必须是打开相机,这是我的代码:

    mPhotoButton = (ImageButton) v.findViewById(R.id.crime_camera);
    final Intent captureImage = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

    boolean canTakePhoto = mPhotoFile != null &&
            captureImage.resolveActivity(packageManager) != null;
    mPhotoButton.setEnabled(canTakePhoto);

    if (canTakePhoto) {
        Uri uri = Uri.fromFile(mPhotoFile);
        captureImage.putExtra(MediaStore.EXTRA_OUTPUT, uri);
    }

    mPhotoButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivityForResult(captureImage, REQUEST_PHOTO);
        }
    });

当我按下它时,应用程序崩溃了。

如果使用 createChooser(),当运行应用程序并按下按钮时,打开选择相机应用程序的对话框,它不会打开相机应用程序并且应用程序崩溃。

我在清单中定义了相机的权限。

此代码完全运行在另一台设备上,但在我的设备 (Galaxy S7 API24) 中运行时发生错误。

fdel源

好像是权限问题。如果您在 api 级别 23 或更高级别上运行您的应用程序,则必须在运行时请求许可。

if (ContextCompat.checkSelfPermission(thisActivity,
                Manifest.permission.CAMERA)
        != PackageManager.PERMISSION_GRANTED) {

    // Should we show an explanation?
    if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
            Manifest.permission.CAMERA)) {

        // Show an explanation to the user *asynchronously* -- don't block
        // this thread waiting for the user's response! After the user
        // sees the explanation, try again to request the permission.

    } else {

        // No explanation needed, we can request the permission.

        ActivityCompat.requestPermissions(thisActivity,
                new String[]{Manifest.permission.CAMERA},
                MY_PERMISSIONS_REQUEST_CAMERA);

        // MY_PERMISSIONS_REQUEST_CAMERA is an
        // app-defined int constant. The callback method gets the
        // result of the request.
    }
}

然后处理结果

@Override
public void onRequestPermissionsResult(int requestCode,
        String permissions[], int[] grantResults) {
    switch (requestCode) {
        case MY_PERMISSIONS_REQUEST_CAMERA: {
            // If request is cancelled, the result arrays are empty.
            if (grantResults.length > 0
                && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

                // permission was granted, yay! Do the
                // camera task you need to do.

            } else {

                // permission denied, boo! Disable the
                // functionality that depends on this permission.
            }
            return;
        }

        // other 'case' lines to check for other
        // permissions this app might request
    }
}

有关更多信息,请访问Android 运行时权限

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Windows 8应用程序的“打开文件”对话框

来自分类Dev

通过外部应用程序打开松弛对话框

来自分类Dev

如何从终端打开“运行应用程序”对话框?

来自分类Dev

如何打开“打开方式”对话框(Windows Store应用程序)?

来自分类Dev

Chocolatey无法安装应用程序,“您如何打开此文件?” 而是打开对话框

来自分类Dev

在关闭对话框后再次打开对话框时,应用程序崩溃并给出“ java.lang.IllegalStateException”

来自分类Dev

首次启动应用程序时,对话框窗口将打开

来自分类Dev

通过Web应用程序打开移动设备共享对话框

来自分类Dev

如何在无需打开应用程序的情况下显示对话框

来自分类Dev

FBSDKLoginManager无法在本机ios应用程序中打开登录对话框

来自分类Dev

Win32 API:打开对话框窗口后,应用程序冻结

来自分类Dev

Setup.exe 不工作或打开 ClickOnce 应用程序的安装对话框很慢

来自分类Dev

Facebook登录不会打开登录对话框Objective-C

来自分类Dev

Angular 8 Button type =“ file”不会打开用于选择文件的对话框

来自分类Dev

Facebook登录不会打开登录对话框Objective-C

来自分类Dev

如何检测JavaFx应用程序窗口处于打开状态并在其中显示对话框?

来自分类Dev

如果安装本机应用程序,则使用Facebook最新的SDK登录,然后在Android中未打开对话框

来自分类Dev

如何在Linux上的Java应用程序的“打开文件”对话框中显示隐藏文件(。*)?

来自分类Dev

基于NSDocument的应用程序,在启动时使用“新建文档”按钮打开对话框

来自分类Dev

无法在Visual Studio 2015(ASP.NET 5 Web应用程序)中打开发布对话框

来自分类Dev

是否直接启动另一个应用程序,而不显示“打开方式...”对话框?

来自分类Dev

使用 OAuth2 和 Google 和 Safari 的 iOS 应用程序显示打开页面对话框

来自分类Dev

打开具有对话框的活动时应用程序在后台关闭(样式 Theme.Dialog)

来自分类Dev

Vue.js - 元素 UI - 嵌套对话框不会打开 - v-if v-show

来自分类Dev

注册应用以从Safari的“共享”或“在...中打开”对话框打开无法正常工作。(尽管可以从其他应用程序使用)

来自分类Dev

注册应用以从Safari的“共享”或“在...中打开”对话框打开无法正常工作。(尽管可以从其他应用程序使用)

来自分类Dev

如何在父窗口中从iframe(共享点托管的应用程序,(应用程序部分))打开模式对话框弹出窗口

来自分类Dev

使用文件打开对话框后,Qt应用程序将焦点切换到其他应用程序

来自分类Dev

如何连续打开对话框而不会覆盖

Related 相关文章

  1. 1

    Windows 8应用程序的“打开文件”对话框

  2. 2

    通过外部应用程序打开松弛对话框

  3. 3

    如何从终端打开“运行应用程序”对话框?

  4. 4

    如何打开“打开方式”对话框(Windows Store应用程序)?

  5. 5

    Chocolatey无法安装应用程序,“您如何打开此文件?” 而是打开对话框

  6. 6

    在关闭对话框后再次打开对话框时,应用程序崩溃并给出“ java.lang.IllegalStateException”

  7. 7

    首次启动应用程序时,对话框窗口将打开

  8. 8

    通过Web应用程序打开移动设备共享对话框

  9. 9

    如何在无需打开应用程序的情况下显示对话框

  10. 10

    FBSDKLoginManager无法在本机ios应用程序中打开登录对话框

  11. 11

    Win32 API:打开对话框窗口后,应用程序冻结

  12. 12

    Setup.exe 不工作或打开 ClickOnce 应用程序的安装对话框很慢

  13. 13

    Facebook登录不会打开登录对话框Objective-C

  14. 14

    Angular 8 Button type =“ file”不会打开用于选择文件的对话框

  15. 15

    Facebook登录不会打开登录对话框Objective-C

  16. 16

    如何检测JavaFx应用程序窗口处于打开状态并在其中显示对话框?

  17. 17

    如果安装本机应用程序,则使用Facebook最新的SDK登录,然后在Android中未打开对话框

  18. 18

    如何在Linux上的Java应用程序的“打开文件”对话框中显示隐藏文件(。*)?

  19. 19

    基于NSDocument的应用程序,在启动时使用“新建文档”按钮打开对话框

  20. 20

    无法在Visual Studio 2015(ASP.NET 5 Web应用程序)中打开发布对话框

  21. 21

    是否直接启动另一个应用程序,而不显示“打开方式...”对话框?

  22. 22

    使用 OAuth2 和 Google 和 Safari 的 iOS 应用程序显示打开页面对话框

  23. 23

    打开具有对话框的活动时应用程序在后台关闭(样式 Theme.Dialog)

  24. 24

    Vue.js - 元素 UI - 嵌套对话框不会打开 - v-if v-show

  25. 25

    注册应用以从Safari的“共享”或“在...中打开”对话框打开无法正常工作。(尽管可以从其他应用程序使用)

  26. 26

    注册应用以从Safari的“共享”或“在...中打开”对话框打开无法正常工作。(尽管可以从其他应用程序使用)

  27. 27

    如何在父窗口中从iframe(共享点托管的应用程序,(应用程序部分))打开模式对话框弹出窗口

  28. 28

    使用文件打开对话框后,Qt应用程序将焦点切换到其他应用程序

  29. 29

    如何连续打开对话框而不会覆盖

热门标签

归档