我有一个自定义链接:callnumber:// 12345
我希望通过以下方式捕获此链接的点击事件:
<activity android:name=".Test"
android:label="@string/app_name">
<intent-filter>
<data android:scheme="callnumber"/>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
我在很多设备上测试过:三星Galaxy S2,三星Galaxy 2,摩托罗拉XT720 它运行得很好但是在HTC Sensation Z710e上,它没有用。
我发现在HTC Sensation Z710e上,该链接变为http://www.callnumber.com//并用浏览器打开。
我把我的意图过滤器改成了这样,它起作用了:
<intent-filter>
<data android:scheme="http" android:host="www.callnumber.com"/>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
但我不想捕获http方案,因为当它从自定义更改为http方案时很容易丢失数据。
示例:如果我的链接是callnumber:// 12345#,它将变为http://www.callnumber.com//12345,它丢失了我的角色'#'
或者,如果我的链接是callnumber:// 12345#34567,它将变为http://www.callnumber.com//12345,它丢失了我的'#34567'
使用上面的Android设备列表(除了HTC Sensation Z710e),它会返回我想要的数据。
那么如何捕获所有Android设备的自定义方案,或者至少对于HTC Sensation Z710e?
非常感谢,
答案 0 :(得分:0)
添加数据行如下:
<data android:host="*" android:scheme="callnumber" />