如何限制用户定义的应用程序意图

时间:2014-07-23 07:56:34

标签: android android-intent

如果我为特定应用创建用户定义的意图过滤器,那么如何通过其他应用访问来限制或使其可用。

<intent-filter>
    <action android:name="com.opentable.action.RESERVE"/>

在这种情况下,将调用注册到com.opentable.action.RESERVE的特定活动或广播接收者。我是否可以指定是否可以从其他应用调用com.opentable.action.RESERVE或仅限制我的应用?

1 个答案:

答案 0 :(得分:4)

如果要定义应该在应用程序内部的自定义Intent操作,则无需在Manifest文件中定义它。

例如,在应用程序中,我使用LocalBroadcastManager作为调度程序模式实现的一部分。我会以这种方式注册BroadcastReceiver实现:

IntentFilter filter = new IntentFilter();
filter.addAction("com.example.android.MY_ACTION");
LocalBroadcastManager.getInstance(context).registerReceiver(receiver, filter);

然后当我运行以下代码时,我的接收器将收到本地广播的意图:

Intent intent = new Intent();
intent.setAction("com.example.android.MY_ACTION");
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);

这样您就不需要为其他应用发布可能与之交互的操作。