为什么我的App Chooser对话没有显示?

时间:2014-10-12 12:04:44

标签: android

我正在使用this tutorial to了解Android中Intent的基础知识。我正在使用的代码示例来自名为"强制应用选择器"在链接的页面上。

以下是单击按钮时应调用的方法。

public void startSecondActivity(View view) {
        Intent intent = new Intent(Intent.ACTION_SEND);
        String fileChooserLabel = getResources().getString(R.string.fileChooserLabel); 

        Intent fileChooserIntent = Intent.createChooser(intent, fileChooserLabel);
        if (intent.resolveActivity(getPackageManager())!=null) { 
            startActivity(intent);
        } else {
            textView = (TextView) findViewById(R.id.text_view); 
            textView.setText("False");
        }

}

但它只是输入else条件的if-else块。我在真实设备和模拟器上试过这个应用程序。所以任何人都可以指出这里可能出现的问题,以及我能做些什么。

注意:我没有向Manifest文件添加任何内容,因为我使用的是Eclipse IDE,我认为此时所需的任何内容都会自动添加到清单文件中。

1 个答案:

答案 0 :(得分:1)

它返回null,因为设备上没有支持Intent的活动。在这种情况下,您的ACTION_SEND Intent设置不正确。

请注意,您用作参考的代码示例不是教程。它不是一个完整的代码示例。事实上,他们在那里列出的内容甚至都不会编译,因为他们的...意图被您自己的代码替换,以完成Intent的设置。

您需要完全配置ACTION_SEND Intent,最明显的是设置MIME类型,如the documentation中其他地方所述。替换:

Intent intent = new Intent(Intent.ACTION_SEND);

有类似的东西:

Intent intent = new Intent(Intent.ACTION_SEND)
                      .setType("text/plain")
                      .putExtra(Intent.EXTRA_TEXT, "IM IN UR STAK OVERFLO ANZWR");

应该足够了。