我已经在我的应用程序中包含了从电话库中插入带“分享”按钮的内容的可能性,但在不同的设备中我有不同的结果。例如,如果我使用代码
从Intent中检索内容的uri val fileUri: Uri = intent.getParcelableExtra(Intent.EXTRA_STREAM).asInstanceOf[Uri]
在Galaxy S3我有:content://media/external/images/media/812
在nexus 7中我有:file:///storage/sdcard0/DCIM/Camera/ContactPhoto-IMG_20131119_173230.jpg
如果我使用该功能:
val projection: Array[String] = Array(MediaColumns.DATA)
val cursor :Cursor= act.getContentResolver.query(uri,projection,null,null,null)
val column_index = cursor.getColumnIndexOrThrow(MediaColumns.DATA)
cursor.moveToFirst()
cursor.getString(column_index)
在这两种不同类型的Uri中,第二种给我错误,因为光标是null
问题是有时action_send带有一个文件:\ URI,有时带有一个内容:\ URI。我需要找到文件:\并将其转换为内容。
答案 0 :(得分:0)
如何在所有设备中使用相同的Uri结构?
欢迎其他应用发送他们想要的任何Uri
值。如果您的<intent-filter>
表示您支持这些计划,那么您将获得Uri
个值,并且必须处理它们。
请注意,您无论如何都不应该使用您的代码段。不要求提供给您的任何Uri
都在MediaStore
。