如何知道使用Intent.ACTION_OPEN_DOCUMENT

时间:2016-05-12 08:47:15

标签: android android-intent

如何检查用户是否从Intent(Intent.ACTION_OPEN_DOCUMENT)打开的图像列表中选择了多个图像或单个图像。将为此操作调用哪个活动?

来自应用程序的AFAIK OnActivityResult Intent的getdata()必须用于单个图像选择,getClipdata()用于多个图像选择。这种有效的方式或任何其他直接方式来获取此信息。

1 个答案:

答案 0 :(得分:0)

刚刚搜索到android源代码以获得答案Intent.ACTION_OPEN_DOCUMENT打开DocumentsActivity,其中以下代码用于在onTaskFinished()中构建意图数据

  void onTaskFinished(Uri... uris) {
    Log.d(TAG, "onFinished() " + Arrays.toString(uris));

    final Intent intent = new Intent();
    if (uris.length == 1) {
        intent.setData(uris[0]);
    } else if (uris.length > 1) {
        final ClipData clipData = new ClipData(
                null, mState.acceptMimes, new ClipData.Item(uris[0]));
        for (int i = 1; i < uris.length; i++) {
            clipData.addItem(new ClipData.Item(uris[i]));
        }
        intent.setClipData(clipData);
    }

我认为如果length是使用setData的一个代码,否则setClipData意味着要对getData执行null检查,或者getClipData是获取有关所选图像的no的信息的唯一方法。最后,如果getData不为null,则只选择一个图像,否则为getClipData()。getItemCount给出所选图像的计数