当前位置: 首页 > 知识库问答 >
问题:

在Android中打开dropbox进行图像提取的意图

乔鸿骞
2023-03-14
private void fireIntentToOpenDeviceImageResources() {
    Intent getIntent = new Intent(Intent.ACTION_GET_CONTENT);
    getIntent.setType("image/*");

    Intent pickIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    pickIntent.setType("image/*");        

    Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    ContentValues values = new ContentValues();
    values.put(MediaStore.Images.Media.TITLE, "New Picture");
    values.put(MediaStore.Images.Media.DESCRIPTION, "From your Camera");
    imageUri = getContext().getContentResolver().insert(
            MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
    takePicture.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);

    Intent chooserIntent = Intent.createChooser(getIntent, "Select Image");
    chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] {pickIntent, takePicture});

    startActivityForResult(chooserIntent, GlobalConsts.PICK_IMAGE_REQUEST);
}

我补充了这样的意图:

PackageManager manager = getActivity().getPackageManager();
Intent i = manager.getLaunchIntentForPackage("com.dropbox.android");
i.setAction(Intent.ACTION_GET_CONTENT);       
getIntent.setType("image/*");

现在它在选择器中显示dropbox应用程序,但我无法从中选择图像。它只是启动dropbox应用程序,而不选择和返回到我的应用程序的可能性。

共有1个答案

饶骁
2023-03-14

Android 4.4(API level 19)引入了存储访问框架(SAF),具有集中的文档访问。您可以使用以下简单代码打开文档选择器:

Intent getIntent = new Intent(Intent.ACTION_GET_CONTENT);
getIntent.setType("image/*");
startActivityForResult(getIntent, MY_REQUEST_CODE);

出于这个原因,在Android>=19上,您的代码将使用各种应用程序打开意图选择器,例如cameraphotos(等等,取决于安装的应用程序)和documents。如果选择documents,文档选择器将打开,在侧边栏上有所有安装在设备中的不同应用程序,包括Dropbox。

如果您希望Dropbox可以直接在intent chooser中使用,您可以像下面这样更改代码:

private void fireIntentToOpenDeviceImageResources() {
    Intent pickIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    pickIntent.setType("image/*");

    Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    ContentValues values = new ContentValues();
    values.put(MediaStore.Images.Media.TITLE, "New Picture");
    values.put(MediaStore.Images.Media.DESCRIPTION, "From your Camera");
    Uri imageUri = MainActivity.this.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
    takePicture.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);

    Intent dropboxIntent = new Intent(Intent.ACTION_GET_CONTENT);
    dropboxIntent.setPackage("com.dropbox.android");
    dropboxIntent.setType("image/*");

    Intent chooserIntent = Intent.createChooser(pickIntent, "Select Image");
    chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[]{takePicture, dropboxIntent});

    startActivityForResult(chooserIntent, GlobalConsts.PICK_IMAGE_REQUEST);
}
Intent esFileManagerIntent = new Intent(Intent.ACTION_GET_CONTENT);
esFileManagerIntent.setPackage("com.estrongs.android.pop");
esFileManagerIntent.setType("image/*");

Intent chooserIntent = Intent.createChooser(pickIntent, "Select Image");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[]{takePicture, dropboxIntent, esFileManagerIntent});
 类似资料:
  • 我正在尝试使用意图打开一个图像。我存储中图像的路径是 /storage/emulated/0/nitp/download/logo.png. 我的代码是 我也尝试把文件://存储/仿真/0/nitp/下载/logo.png和内容://存储/仿真/0/nitp/下载/logo.png 我应该走哪条路? 解决了必须使用file:///storage/emulated/0/nitp/downloads/

  • 我正在与一位摄影师客户合作创建一个简单的网站,我希望建立一个从Dropbox文件夹中提取的照片库,因此每当她想更新库中的图像时,她只需将照片从Dropbox文件夹中交换出来。很简单,对吧? 有没有办法使用jQuery或PHP从Dropbox目录中提取图像并将其显示到网页上?我已经成功地从Dropbox上的文本文件中提取了文本,但我不知道是否可以对目录中的图像进行相同的操作。 我在谷歌上做了一些搜索

  • 问题内容: 我正在开发一个使用tesseract OCR扫描图像中文本的android应用, 听说在对其执行OCR之前对图像进行二值化处理会产生更好的结果, 所以我开始寻找可以执行此操作的代码, 我发现很少,但实际上是在Java中,并且需要awt库…因此它们在android上不起作用。 所以你能帮我找到一个吗? 谢谢 问题答案: 一个简单的解决方案 在下文中,我仅根据正常的3维空间距离公式更改图像

  • 我一直在开发一个Android RSS阅读器。我想从RSS提要中获取图像,并将它们连同RSS标题一起列出。我已经解析并从“title”和“description”标签中获取数据。有人能告诉我如何从“description”的“src”属性下面获取图像URL吗?

  • 本文向大家介绍android打开本地图像的方法,包括了android打开本地图像的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了android打开本地图像的方法。分享给大家供大家参考。具体如下: 方法一,调用手机安装的图像浏览工具浏览: 方法二,调用手机自身图像浏览工具浏览: 将上述代码写入onClick事件中即可! 希望本文所述对大家的Android程序设计有所帮助。

  • 我正在设计一个应用程序,我想在地图上显示具体的位置。我正在传递地址的,它已经放在上。以下是我的代码.. 但它给了我谷歌地图来获取方向。我知道为什么会这样,因为我在中使用了,但我不知道在特定位置使用什么..请告诉我在那里使用什么..