android - 无法正确获取 "android.intent.action.SEND" Intent 的路径

标签 android android-intent

我可以通过以下代码将路径传递给另一个类

private void sendImageFromCameraIntent() {
    Intent intent = getActivity().getIntent();
    String action = intent.getAction();
    String type = intent.getType();
    if (Intent.ACTION_SEND.equals(action) && type.startsWith("image/")) {
        Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
        if (imageUri != null) {
            String path = imageUri.getPath();
            Toast.makeText(getContext(), path, Toast.LENGTH_SHORT).show();
            imageShared = true;
            inputPanel.sendImage(path);
        }
    }
}

但在另一个类中,以下检查失败

 public int sendImage(String path) {
    if (path != null && new File(path).isFile()) {
     // code to send image - works fine when adding an attachment

     return 1;
   }
   else return -1

路径显示在 toast 中,但我得到一个 -1 作为返回值

最佳答案

我将 getPath 更改为

String path = FileUtils.getPath(getActivity(), imageUri);

关于android - 无法正确获取 "android.intent.action.SEND" Intent 的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26137128/

相关文章:

java - 更改 root 设备上的日期 (Android M)

java - 在单独的类中加载 JSON 数组列表并在另一个 Activity 中加载

android - 从另一个 Activity 完成一个 Activity

android - 发送 Intent 时检测目标应用程序

android - 确认 Activity Android Wear 持续时间太短

android - 我怎样才能打开联系人 Activity 只是为了查看联系人的信息,不允许用户点击(或触摸)任何东西?

java - 字符串在同一个类中不可访问

android - 如何在 AlertDialog 消失后保留列表值

android - 如何在 mac osx 中将 .dex 转换为 .jar

android - 无提示调用号码