如果我为特定应用创建用户定义的意图过滤器,那么如何通过其他应用访问来限制或使其可用。
<intent-filter>
<action android:name="com.opentable.action.RESERVE"/>
在这种情况下,将调用注册到com.opentable.action.RESERVE
的特定活动或广播接收者。我是否可以指定是否可以从其他应用调用com.opentable.action.RESERVE
或仅限制我的应用?
答案 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);
这样您就不需要为其他应用发布可能与之交互的操作。