我在谷歌上没有找到相关信息,所以想问一下有没有人有经验或知道如何从Windows Phone 8设备向Android设备发送一个简单的字符串,比如“hello”?到目前为止,我们已经能够实现Android -> Android和Android -> Windows Phone 8,但是我们还没有找到如何从Windows Phone 8到Android的方法。是否有人看过在线指南或知道如何做到这一点?首先,我想找出如何让Windows Phone 8上的应用程序意识到它靠近一个安卓NFC设备......然后就是找出如何使安卓手机上的应用程序接收消息。
感谢您的帮助!
* 答案 *
好的,以下是一些答案/提示:
我最终将NFC消息作为外部类型发送,因为发送应用程序/my.mimetype 会在Windows Phone上引发“对不起,您的手机无法识别此类型的文件”的错误,尽管消息得以传递。
@Override
public NdefMessage createNdefMessage(NfcEvent event) {
NdefMessage ndefMessage = new NdefMessage((
new NdefRecord[] {createMimeRecord("packageName:externalType",docId.getBytes())}));
return ndefMessage;
}
public NdefRecord createMimeRecord(String mimeType, byte[] payload) {
byte[] mimeBytes = mimeType.getBytes(Charset.forName("US-ASCII"));
NdefRecord mimeRecord = new NdefRecord(NdefRecord.TNF_EXTERNAL_TYPE, mimeBytes, new byte[0], payload);
return mimeRecord;
}
在Android中,你只需要按照SDK示例(android-16/17 - AndroidBeamDemo)的说明进行操作,这里有非常详细的解释 - http://www.tappednfc.com/wp-content/uploads/TAPPED-NFCDeveloperGuide-Part1.pdf。但是,不要使用应用程序mimetype,而要使用上面提到的外部类型,在你的清单文件中,将intent过滤器中的mimetype替换为以下内容: <data
android:host="ext"
android:pathPrefix="/cco.drugformulary:externalType"
android:scheme="vnd.android.nfc" />
关于从Windows手机阅读和发送消息,您可以使用被接受答案的方法,应该可以工作,但是对于类型,请将cco.drugformulary:externalType放在上面(当然使用您自己的项目名称)。
如果您遇到任何问题,请随时问我。