android - 使用 Intent.ACTION_PICK 启动活动时,我的 Android 应用程序未显示
问题描述
我正在开发一个 Android 应用程序,其中包含一个带有图像的网格视图。我希望这个应用程序能够在用户想要选择图像时做出响应。我在我的应用程序清单中添加了以下内容:
<activity android:name=".activities.MainActivity">
<intent-filter>
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
</activity>
我制作了另一个小应用程序,主要功能是启动一个活动,如下所示:
Intent selectImageIntent = new Intent(Intent.ACTION_PICK);
startActivityForResult(selectImageIntent, REQUEST_SELECT_IMAGE);
当我单击运行上述代码的按钮时,我会得到一个可供选择的应用程序列表。但是,我的第一个应用程序不是其中之一。我已经调试了各种方式以及所有关于 Intent 的 SO 和 Android 文档,但没有发现任何迹象表明我在第一个应用程序中错误地编写了意图过滤器或在第二个应用程序中错误地编写了 Intent。
附加信息:
在模拟器上测试 - Nexus 5x @ 7.1.1,API 25 - 这会立即启动 Google Drive
在物理设备上测试 - Essential PH-1 @ 8.1.0,API 27 - 这给了我多个应用程序可供选择,但我的应用程序不是其中之一。
解决方案
它没有触发的原因是你没有type
正确设置。从您的“另一个应用程序”执行以下操作:
Intent selectImageIntent = new Intent(Intent.ACTION_VIEW);
selectImageIntent.setType("image/*");
startActivity(selectImageIntent);
推荐阅读
- reactjs - withRouter 和 connect() 导致应用程序崩溃
- node.js - 使用 node.js 服务器发送和接收电子邮件
- angular - 如何将 Angular 5 中的点击数据从父组件传递到子组件?
- html - 当我聚焦时,我试图将标签移动到输入字段上方,但它却被隐藏了
- javascript - 每次会话模态显示一次
- automl - google automl 会自动进行图像增强吗?
- xamarin.forms - 在 SwitchOutRootNavigation 之后,Freshmvvm 自定义导航页面中的第一个选项卡不显示
- java - java接口方法内联
- ruby-on-rails - 无法将 ruby 应用程序部署到 heroku “预编译资产失败”
- angular - 将多个 div(类)绑定到 Angular 中的动态值