Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-如何使用删除选项在图库中打开图像_Android_Android Intent - Fatal编程技术网

Android-如何使用删除选项在图库中打开图像

Android-如何使用删除选项在图库中打开图像,android,android-intent,Android,Android Intent,我使用以下代码在库中打开图像: public void onItemClicked(PictureItem item){ Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); Uri imageUri = FileProvider.getUriForFile(getApplicationContext(), "myapp.fileprovider", new File(item.uri.g

我使用以下代码在库中打开图像:

public void onItemClicked(PictureItem item){
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);

    Uri imageUri = FileProvider.getUriForFile(getApplicationContext(), "myapp.fileprovider", new File(item.uri.getPath()));

    intent.setDataAndType(imageUri, "image/*");
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    startActivity(intent);
}
这将在库中显示我的照片,但处于“只读”模式。我希望能够从那里删除图像,就像我直接在图库中打开它一样

我必须使用哪种操作来完成此操作?我不想使用拾取,只想使用带有删除选项的普通视图。我尝试了
ACTION\u EDIT
,但它不受支持(而且也不是正确的选择…)

我使用以下代码在库中打开图像

首先,Android上有数百种(如果不是数千种的话)应用程序可供选择

其次,您的代码只是要求查看图像(由于您的通配符MIME类型,图像的
意图被破坏)。对于响应为“gallery”应用程序的应用程序没有任何要求

我希望能够从那里删除图像,就像我直接在图库中打开它一样

然后自己在自己的应用程序中实现,并摆脱
操作视图
意图

我必须使用哪种操作来完成此操作


没有任何
Intent
操作会说“请显示此图像,但仅当您是gallery应用程序时,而且,哦,顺便说一句,您必须提供一个删除选项”,这似乎是您想要的。

然后再添加写入标志。您不应该依赖于此。。如果您具有写入外部存储权限,则应使用应用内活动查看文件,并通过用户交互将其删除<代码>操作\u编辑可能无法在所有设备中工作。
新文件(item.uri.getPath())
看起来有问题。请告诉uri.getPath()和uri.toString()的值。@blackapps如何?''intent.addFlags(intent.FLAG\u GRANT\u WRITE\u URI\u权限);''不做任何其他操作。它取决于item.uri。但是如果你不详细说明的话……谢谢你,我只是想在默认的gallery应用程序中打开图像,使用默认的gallery功能,这似乎不是我自己实现的那么特别…@Kinaeh:Android设备大约有25亿台,分布在26000多个设备型号上。在这些设备型号中,有几十种(如果不是几百种的话)的“默认库应用程序”实现。什么是“默认画廊功能”将因应用程序而异。一般来说,没有人需要将删除作为一个选项,更不用说第三方应用程序(如您的)启动时。好的,我将自己实现它。这是我的第一个android应用程序,所以我认为必须有一个简单的方法(我从未见过一个android没有带删除按钮的图库,我发现它打开了文件管理器,而不是图库)。。。谢谢@基纳:一般来说,当你将一个“隐式的”
Intent
(一个带有像
action\u VIEW
这样的动作字符串)与
startActivity()
一起使用时,你可以启动数百个可能的应用程序中的任何一个。有些可能是由制造商预先安装的。其他可能由Play Store或其他地方的用户安装。一般来说,我们无法对这些应用程序的行为做出很多假设。