- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用 intent.ACTION_PICK 打开图像,但是当我使用 startActivityForResoult 启动 Activity 时,我的应用程序崩溃了。我做错了什么的任何线索?
public void button_load_image(View view) {
String path = Environment.getExternalStorageDirectory()
.getAbsolutePath() + "/" + SimpleCamera.getAlbumName();
File f = new File(path);
if (f.exists()) {
Log.d("button_load_image", "folder exists");
if (f.isDirectory()) {
Log.d("button_load_image", "is directory");
Uri u = Uri.fromFile(f);
Intent intent = new Intent(Intent.ACTION_PICK, u);
Log.d("Intent.ACTION_PICK", "IS CREATED");
startActivityForResult(intent, REQUEST_CODE_LOAD_IMAGE);
}
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case REQUEST_CODE_LOAD_IMAGE:
if (resultCode == RESULT_OK) {
Uri imageUri= data.getData();
Log.d("image selected path", imageUri.getPath());
}
break;
}
}
日志显示:
08-13 17:11:37.594: D/libEGL(3265): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so
08-13 17:11:37.594: D/libEGL(3265): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so
08-13 17:11:37.602: D/libEGL(3265): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so
08-13 17:11:37.664: D/OpenGLRenderer(3265): Enabling debug mode 0
08-13 17:11:46.672: D/album != null(3265): /storage/emulated/0
08-13 17:11:49.914: D/button_load_image(3265): folder exists
08-13 17:11:49.914: D/button_load_image(3265): is directory
08-13 17:11:49.914: D/Intent.ACTION_PICK(3265): IS CREATED
08-13 17:11:49.922: D/AndroidRuntime(3265): Shutting down VM
08-13 17:11:49.922: W/dalvikvm(3265): threadid=1: thread exiting with uncaught exception (group=0x413b0930)
08-13 17:11:49.930: E/AndroidRuntime(3265): FATAL EXCEPTION: main
08-13 17:11:49.930: E/AndroidRuntime(3265): java.lang.IllegalStateException: Could not execute method of the activity
08-13 17:11:49.930: E/AndroidRuntime(3265): at android.view.View$1.onClick(View.java:3597)
08-13 17:11:49.930: E/AndroidRuntime(3265): at android.view.View.performClick(View.java:4202)
08-13 17:11:49.930: E/AndroidRuntime(3265): at android.view.View$PerformClick.run(View.java:17340)
08-13 17:11:49.930: E/AndroidRuntime(3265): at android.os.Handler.handleCallback(Handler.java:725)
08-13 17:11:49.930: E/AndroidRuntime(3265): at android.os.Handler.dispatchMessage(Handler.java:92)
08-13 17:11:49.930: E/AndroidRuntime(3265): at android.os.Looper.loop(Looper.java:137)
08-13 17:11:49.930: E/AndroidRuntime(3265): at android.app.ActivityThread.main(ActivityThread.java:5039)
08-13 17:11:49.930: E/AndroidRuntime(3265): at java.lang.reflect.Method.invokeNative(Native Method)
08-13 17:11:49.930: E/AndroidRuntime(3265): at java.lang.reflect.Method.invoke(Method.java:511)
08-13 17:11:49.930: E/AndroidRuntime(3265): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
08-13 17:11:49.930: E/AndroidRuntime(3265): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
08-13 17:11:49.930: E/AndroidRuntime(3265): at dalvik.system.NativeStart.main(Native Method)
08-13 17:11:49.930: E/AndroidRuntime(3265): Caused by: java.lang.reflect.InvocationTargetException
08-13 17:11:49.930: E/AndroidRuntime(3265): at java.lang.reflect.Method.invokeNative(Native Method)
08-13 17:11:49.930: E/AndroidRuntime(3265): at java.lang.reflect.Method.invoke(Method.java:511)
08-13 17:11:49.930: E/AndroidRuntime(3265): at android.view.View$1.onClick(View.java:3592)
08-13 17:11:49.930: E/AndroidRuntime(3265): ... 11 more
08-13 17:11:49.930: E/AndroidRuntime(3265): Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.PICK dat=file:///storage/emulated/0/simple_pic }
08-13 17:11:49.930: E/AndroidRuntime(3265): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1622)
08-13 17:11:49.930: E/AndroidRuntime(3265): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1417)
08-13 17:11:49.930: E/AndroidRuntime(3265): at android.app.Activity.startActivityForResult(Activity.java:3370)
08-13 17:11:49.930: E/AndroidRuntime(3265): at android.app.Activity.startActivityForResult(Activity.java:3331)
08-13 17:11:49.930: E/AndroidRuntime(3265): at com.example.mc.MC_Memu.button_load_image(MC_Memu.java:53)
08-13 17:11:49.930: E/AndroidRuntime(3265): ... 14 more
最佳答案
ACTION_PICK 允许用户从注册了此类操作的任何已安装应用程序中选择图像。无法指定从哪个专辑中选择。用户可以自行决定使用哪个应用程序并浏览到所需的相册以选择照片。
所以取出文件夹参数,你可以试试这个:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, REQUEST_CODE_LOAD_IMAGE);
在 onActivityResult 中,除了 RESULT_OK 之外,您还应该检查 data.getData() != null,因为应用可以正确关闭(而不是取消)而根本不返回图像。
关于android - 使用 Intent.ACTION_PICK 打开图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18220152/
我希望用户选择我的应用程序将向其发送 SMS 的联系人。我如何确保当我使用 ACTION_PICK Intent 开始一个 Activity 时,只显示那些有手机号码的联系人? 目前,我正在这样开始
我正在尝试使用 Android 画廊来挑选图像。为此,启动画廊很容易 Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); photoP
我有一个应用程序,其中一个方面是让用户选择一个联系人并通过该应用程序向该联系人发送文本。该应用程序仅适用于某些联系人,而对其他人则失败。更准确地说: 对于我手动输入通讯录的联系人,Intent.ACT
我的代码允许用户通过单击按钮使用 Intent.ACTION_PICK 选择图像: public void onClick(View v) { Intent photoPickerIntent = n
我正在尝试使用 intent.ACTION_PICK 打开图像,但是当我使用 startActivityForResoult 启动 Activity 时,我的应用程序崩溃了。我做错了什么的任何线索?
我正在尝试制作一个应用程序,要求用户选择一个图像文件,然后通过 Intent 将其发送到另一个应用程序(在这种情况下是 Whatsapp,但这应该适用于其他应用程序) 我这样做是为了请求文件: In
我遇到了一个看起来很简单的简单问题,但是,当我从图库中挑选一张图片并尝试在 onActivityResult 的 ImageView 中设置它时,就会出现错误。 java.lang.RuntimeE
我想从构建联系人选择器中读取联系人信息。我正在读取电话号码、街道、电子邮件和地址。它出错了。 以下是调用联系人选择器的代码: Intent contactPickerIntent = new Inte
我正在使用这样的 Intent : Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore
我想知道以下 android intents 是否在所有设备上都可用,或者它们是否仅在某些设备上可用,如 com.android.camera.action.crop 是? 从图库中选择图像的 Int
代码: Intent intent = new Intent(Intent.ACTION_PICK); intent.setType("audio/*"); startActivityForRe
我在 onCreate Activity 类中有这段代码,但我不想使用 Activity。 Intent intent = new Intent(Intent.ACTION_PICK, android
我需要在我的应用程序中选择联系人,并希望排除存储在我的 SIM 卡中的联系人。 ACTION_PICK 是否可行? 最佳答案 不,这不可能 很遗憾,目前不可能。 为了证明这一点,让我们深入研究Cont
我的目标是只向用户显示带有电话号码的联系人,并让用户选择我想存储在本地的几个联系人。 我在下面的方法中使用了各种选项来代替 ContactsContract.Contacts.CONTENT_URI。
我在 Android 中开发,我想实现一个文本文件选择。 我在我的安卓手机上安装了es文件管理器。 我添加权限: ,然后我尝试以下代码: Intent intent = new Intent( In
我正在编写一个 Android 应用,它的数据类型代表一个人(特别是 child 的 parent 或监护人)。我希望能够从 Android 设备的联系人数据库中“导入”相关数据字段。 (这应该是可选
我试图让用户在我正在构建的这个壁纸应用程序中选择他们想要在他们的设备上用作壁纸的任何图像。出于某种原因,当我写作时: Intent myIntent = new Intent(Intent.ACTIO
我正在开发一个 Android 应用程序,其中包含一个带有图像的 GridView 。我希望此应用程序能够在用户想要选择图像时做出响应。我已将以下内容放入我的应用程序 list 中:
我正在运行 ICS 并使用相同 Google 帐户的平板电脑和手机上测试我们的应用程序。如果我在一个设备上拍照,它会显示在另一台设备上(通过 Picasa 同步)。奇怪的是,当我做正常的时候,照片会出
public class MainActivity extends Activity { Button b; //FrameLayout fl; @Override p
我是一名优秀的程序员,十分优秀!