我希望在安装时监控应用。我知道我应该使用广播接收器,我也应该添加
<receiver android:name="com.gr.xxx">
<intent-filter >
<action android:name="android.intent.action.PACKAGE_ADDED"/>
<action android:name="android.intent.action.PACKAGE_REPLACED"/>
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
<data android:scheme="package"/>
</intent-filter>
</receiver>
在mainifest中。但是,如果我不写这个<data android:scheme="package"/>
,它将无效。
我的问题是:我怎么知道是否应该写<data>
。我该怎么写这个计划?
答案 0 :(得分:0)
但是如果我不写这个就行不通。
正确。
大多数广播Intents
没有填写Uri
来填充&#34;数据&#34; facet,这就是为什么您通常在<data>
元素的<intent-filter>
元素中看不到<receiver>
元素的原因。但是,与软件包相关的广播做会在package:
中添加Uri
Intent
,因此您需要将其包含在过滤器中。
我怎么知道是否应该写
在这种情况下,这些Intent
操作的文档具有&#34;数据包含包的名称&#34;。这个小小的陈述是告诉你需要一个<data>
元素的线索。但是,它没有告诉你这个方案是什么,这就是为什么你最终搜索互联网以找出你的<intent-filter>
无效的原因。几天前,我遇到了同样的Intent
行动,遇到了这个问题。
理想情况下,文档会更好。理想情况下,我会有头发。
我该怎么写这个计划?
这可能是Uri
中Intent
可能使用的方案。
您将使用<activity>
进行更多操作,您将在其中看到content:
计划,file:
计划很多(尽管正在减少),有时http:
或https:
计划。这是因为我们使用Uri
Activity
的频率高于使用Uri
和BroadcastReceiver
的{{1}}。