Android Beam:与回退到web版本的应用程序内链接共享
是否有一种方法可以构建Android Beam:与回退到web版本的应用程序内链接共享,android,nfc,ndef,nfc-p2p,android-beam,Android,Nfc,Ndef,Nfc P2p,Android Beam,是否有一种方法可以构建NdefMessage: 如果我的应用程序安装在接收设备上,请打开其中的链接(例如,使用自定义URI方案) 如果未安装“我的应用程序”,请打开默认的web浏览器,其中包含指向移动网站上相同页面的链接 我让它们单独工作,但当我将两条NdefRecord放入NdefMessage并将其设置为通过Android Beam推送时,接收器设备会显示一个带有这两条记录的选择器。您可以单击其中一个,它将带您进入相应的应用程序(我的应用程序或Chrome)。有没有办法绕过此选择器,让它
NdefMessage
:
- 如果我的应用程序安装在接收设备上,请打开其中的链接(例如,使用自定义URI方案)
- 如果未安装“我的应用程序”,请打开默认的web浏览器,其中包含指向移动网站上相同页面的链接
NdefRecord
放入NdefMessage
并将其设置为通过Android Beam推送时,接收器设备会显示一个带有这两条记录的选择器。您可以单击其中一个,它将带您进入相应的应用程序(我的应用程序或Chrome)。有没有办法绕过此选择器,让它自动启动第一个受支持的链接?没有
但这里有两个解决办法:
如果不需要使用AndroidApplicationRecords,只需使用一条指向移动页面的NDEF记录即可 例如,如果您的移动页面是,您将在NDEF消息中将其存储为URI记录:
+-----------------------------------------+
| WKT:URI | http://www.example.com/mypage |
+-----------------------------------------+
然后,如果未安装应用程序,这将触发移动设备上的webbrowser
要获取此记录以启动应用程序,您需要向应用程序的清单中添加适当的意图筛选器:
<activity ...>
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http"
android:host="www.example.com"
android:pathPrefix="/mypage" />
</intent-filter>
</activity>
由于该消息中的第一条记录仍然是您的URI,因此该活动将继续在现有的intent筛选器上触发。在活动中,您可以从intent中检索NDEF消息,并处理第二条记录/其他记录中的参数
+-----------------------------------------+
| WKT:URI | http://www.example.com/mypage |
+-----------------------------------------+
| EXT:example.com:mytype | myparameters |
+-----------------------------------------+
| ... |