【问题标题】:Impossible to take a picture from the app无法从应用程序拍照
【发布时间】:2017-07-28 14:48:42
【问题描述】:

我使用不同的标签,几乎相同。 在我的应用程序中,我想用这个代码用相机拍照

  public void takePicture(View v) {
    imageFilePath = file_path + "/" + "Photo_" + idFiche + ".png";
    File imageFile = new File(imageFilePath);
    Uri imageFileUri = Uri.fromFile(imageFile);
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageFileUri);
    startActivityForResult(takePictureIntent, REQUEST_CODE_PICTURE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    InputStream stream = null;
    if (requestCode == REQUEST_CODE_PICTURE && resultCode == Activity.RESULT_OK) {

       //blablabla
    }
}

它在某些选项卡上效果很好,但在其他选项卡上,无法单击照片应用程序的激活按钮来保存图片,如下图红色边框所示。

我认为相机应用程序有问题,即使我可以直接从设备(而不是我的应用程序)拍照,但如何解决?我可以删除图片应用程序并使用具有相同代码的另一个应用程序吗?或者通过新意图启动特定应用???

感谢您的帮助

【问题讨论】:

    标签: android image android-camera-intent


    【解决方案1】:

    我认为相机应用程序错误

    很有可能。许多相机应用似乎都很少通过ACTION_IMAGE_CAPTURE 的测试。

    如何解决?

    停止使用ACTION_IMAGE_CAPTURE。直接或通过第三方库使用相机 API。

    我可以删除图片应用吗

    如果“图片应用”是指“相机应用”,则很可能相机应用已预装,无法卸载。另外,用户可能不喜欢您尝试卸载他们的相机应用。

    并使用具有相同代码的另一个应用程序?

    如果设备上安装了多个支持ACTION_IMAGE_CAPTURE 的相机应用程序,您的代码已经让用户可以选择相机应用程序。

    或者通过新的意图启动一个特定的应用程序?

    设备上不太可能存在您想要的“特定应用”。

    【讨论】:

    • 嗨,我只是将 Open Camera 作为另一个图片应用程序进行测试,并且我遇到了同样的问题,消息“无法注册图片”(我的翻译可能并不完美)。所以真相就在那里:)。我将尝试使用相机 API
    • @FlorentBreton:我不知道file_path是什么,但是Open Camera可能没有权限在那里写。
    • file_path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/my_folder";所有权限都已可用
    • @FlorentBreton:“所有权限都已经可用”——无论您的应用是否有权限。重要的是 Open Camera 是否有权限(以及目录是否存在)。
    • 我发现问题出在哪里。 file_path 不是使用特定选项卡创建的。当我直接在 sdcard 中创建它时,一切正常。我必须找出为什么会这样,但你在反思中帮助了我很多。谢谢
    猜你喜欢
    • 2017-02-24
    • 2016-04-11
    • 1970-01-01
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多