1. action name 正则匹配
Android intent-filter 中的 action 命名,是允许使用冒号 :
的。
之前一直忽略了,[惭愧]。
匹配 action name 的正则表达式 [0-9a-zA-Z._:-]+
action name 可以包含:数字 0-9
、小写字母a-z
、大写字母A-Z
、点.
,下划线_
,冒号:
,横杠-
。
注: 《搜索 AndroidManifest.xml 中的 action》 一文中的正则表达式还没有修改。
2. 测试代码
- 注册 receiver
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("action:com.galian.test");
registerReceiver(mReceiver, intentFilter);
- 发送广播:
private fun sendBroadcast() {
val action = "action:com.galian.test"
val intent = Intent(action)
intent.putExtra("ok", "action name is allowed to contain colon")
sendBroadcast(intent)
}