接受意图

时间:2012-06-21 22:18:25

标签: android android-intent broadcastreceiver intentfilter

我有一个打开txt文件的活动。每次用户想要打开txt文件时,我的应用程序都可以打开它。我的问题是,如何将要打开的文件路径传递给我的活动?而且,我如何以编程方式接收路径?简而言之,除了在清单文件中设置intent过滤器以允许我的应用程序在单击该文件时打开txt文件,我还需要做些什么?

2 个答案:

答案 0 :(得分:0)

您可以使用文件(http://developer.android.com/reference/java/io/File.html)或FileInputStream(http://developer.android.com/reference/java/io/FileInputStream.html)类来保存文件路径和处理输入。如果您按意图传递,则可能需要使用putExtra()方法将包含文件名的字符串添加到intent中,并在另一侧检索它。

答案 1 :(得分:0)

您需要使用广播接收器,但不确定您必须使用什么样的过滤器。

也许要尝试的是在你的清单上添加这样的东西:

<receiver android:name="MyBroadcastReceiver">
  <intent-filter>
    <action android:name="android.intent.action.ACTION_VIEW" />
    <action android:name="android.intent.action.ACTION_EDIT" />
    <action android:name="android.intent.action.ACTION_PICK" />
  </intent-filter>
</receiver>

然后你需要像这样创建你的MyBroadcastReceiver类:

public final class MyBroadcastReceiver extends BroadcastReceiver
{
  @Override
  public void onReceive(Context context, Intent intent)
  {
    // Your receiver code here...
  }
}

然后在尝试打开文件时检查onReceive方法中收到的数据到Intent。这样你就可以知道哪些数据会进入Intent。

希望它有所帮助。