Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android意图选择器不能有空的意图目标_Android_Android Intent_Android Intent Chooser - Fatal编程技术网

Android意图选择器不能有空的意图目标

Android意图选择器不能有空的意图目标,android,android-intent,android-intent-chooser,Android,Android Intent,Android Intent Chooser,为什么我需要:targetedShareContents.remove(0)这是否意味着从targetedShareContents中删除了意图 我已经看到这段代码被大量使用。我不明白为什么我们需要使用删除。ThxtargetedShareContents.remove(0)表示在删除第一个元素后抛出列表。。。因为第一个目标是共享内容 软件包名为com.google.android.apps.docs,因此不需要文档应用程序。。因此,删除不必要的应用程序更好。因为用户不想向其发送数据。。。这就是

为什么我需要:
targetedShareContents.remove(0)
这是否意味着从targetedShareContents中删除了意图


我已经看到这段代码被大量使用。我不明白为什么我们需要使用删除。Thx

targetedShareContents.remove(0)
表示在删除第一个元素后抛出列表。。。因为第一个目标是共享内容 软件包名为com.google.android.apps.docs,因此不需要文档应用程序。。因此,删除不必要的应用程序更好。因为用户不想向其发送数据。。。这就是从列表中删除TargetedShareContent的原因。。。您可以记录并检查包名

Intent shareIntent=newintent(android.content.Intent.ACTION\u SEND);
shareIntent.setType(“文本/普通”);
List resInfo=getPackageManager().queryInputActivities(shareIntent,0);
Log.e(“package”,resInfo.get(0.activityInfo.packageName);

感谢您的评论。如果我不想从TargetedShareContent中删除任何内容,我应该使用什么?我知道我已经尝试添加了一个只有action_send as类型的意图,但是在Android 5上不起作用。我在“通过对话共享”中没有看到任何内容。我无法理解您。。在编辑问题后,你能正确解释你的问题吗如果你不想从列表中删除任何内容,你可以使用
Intent-chooserecontent=Intent.createChooser(targetedShareContents,“选择要共享的应用程序”)如果您得到了答案,请更新…我无法使用Intent chooserentent=Intent.createChooser(targetedShareIntents,“选择要共享的应用”);因为targetShareIntents是一个列表
List<Intent> targetedShareIntents = new ArrayList<Intent>();
Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
shareIntent.setType("text/plain");
List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(shareIntent, 0);
if (!resInfo.isEmpty()) {
    for (ResolveInfo resolveInfo : resInfo) {
        String packageName = resolveInfo.activityInfo.packageName;
        Intent targetedShareIntent = new Intent(android.content.Intent.ACTION_SEND);
        targetedShareIntent.setType("text/plain");
        targetedShareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "subject to be shared");
        if (TextUtils.equals(packageName, "com.facebook.katana")) {
            targetedShareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "http://link-to-be-shared.com");
        } else {
            targetedShareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "text message to shared");
        }
        targetedShareIntent.setPackage(packageName);
        targetedShareIntents.add(targetedShareIntent);
    }
    Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), "Select app to share");
    chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[targetedShareIntents.size()]));
    startActivity(chooserIntent);
}
 Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), "Select app to share");
    Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
    shareIntent.setType("text/plain");
    List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(shareIntent, 0);

    Log.e("package",resInfo.get(0).activityInfo.packageName);