我是NFC新手.我尝试连接到NFC并将文本数据从设备共享到另一台设备.
我在两台设备和一台设备上安装我的应用程序,打开我的应用程序,然后开始将设备点击到另一台设备,以便通过Beam传输数据.
在另一台设备上,由于Beam交互,我的应用程序打开.但是,活动是使用默认的MAIN意图操作启动的,而不是使用TAG_DISCOVERED(或类似的NFC意图)启动的.每次它做同样的事情.
此外,它没有调用该onNewIntent()方法.我试图打电话onNewIntent给onCreate,但在那种情况下,意图行动仍然是主要的.我希望能够获得Beam交互的NFC意图.那么请你告诉我哪里出错了?
在这段代码中,我没有共享数据.我首先需要标签.
表现:
<activity android:name="com.framentos.hellonfc.MainActivity"
android:clearTaskOnLaunch="true"
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/nfc_tech_filter" />
</activity>
Run Code Online (Sandbox Code Playgroud)
Java代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ctx = this;
// startHandler();
_handler = new Handler();
Button btnWrite = (Button) findViewById(R.id.button);
message …Run Code Online (Sandbox Code Playgroud) 我想在我的Android应用和支持NFC的自助服务终端之间实现NFC通信.我已经阅读了文档,我理解推送数据可以通过两种方式完成:
我想我可以通过第一个解决方案做我想做的事情,但我想知道是否可以在Android设备和非Android设备之间使用Android Beam?
谢谢你的帮助,
罗曼
我正在开发一个项目,我正在使用Android智能手机和PN532 USB芯片(elechouse),它具有点对点模式作为其功能之一.我试图将PN532模块的NDEF消息发送到智能手机,相反,它工作正常.
我想要的是,当PN532模块找到智能手机时,我的应用程序会自动启动.
我知道一个解决方案是使用MIME类型记录.
我的清单中有这个:
<data android:mimeType="application/vnd.test.com.openapp"/>
Run Code Online (Sandbox Code Playgroud)
在模块方面,我可以传输MIME,但我不知道这个MIME必须是什么形式.我试图传输字符串但没有任何反应.
那么如何在我的模块上创建MIME类型记录呢?有没有其他方式通过点对点通信启动我的应用程序?
我找到了两种让Android应用检测和处理NFC标签的方法:
NfcAdapter.enableReaderMode(activity, callback, flags, extras) 然后在回调中接收标记信息.
NfcAdapter.enableForegroundDispatch(activity, intent, filters, techLists)然后在onNewIntent(intent)activity方法中接收标记信息.
我目前使用的是第二种方法,但是,我最近发现了这种enableReaderMode方法,并想知道用它来处理NFC标签是否更好.
那么enableReaderMode和之间的区别是什么enableForegroundDispatch?
我发现Android设备支持三种NFC模式:读写器,P2P和卡模拟.
我的应用程序可以检查当前启用的模式吗?
我试图根据本文档使用我的Nexus 5模拟NFC标签,但我的服务永远不会被调用.我应该关闭Android光束吗?
我想模拟一个包含网址的简单标记.
读者是Nexus 7(2012),我已经发现这个过程就像在Nexus 7上使用Android光束简单扫描NFC标签一样.
另外我对辅助过滤器名称有点困惑.有他们的清单吗?
我确定我不明白.谢谢
我正在尝试与我的Galaxy S III和具有PN532 NFC芯片的微控制器进行通信.
由于这是一个微控制器,我没有默认的LLCP库,所以我必须自己理解Android协议.
任何人都可以为我澄清一下,当我第一次将手机放到设备上时,从第一步开始会有什么数据包?假设我正确解析,我看到:
DSAP: 3F
PTYPE: 0
SSAP: 0
Run Code Online (Sandbox Code Playgroud)
并且
DSAP: 1E
PTYPE: C
SSAP: 0
Run Code Online (Sandbox Code Playgroud)
这是沿着正确的方向吗?Android尝试做什么?我原本期望在信息包之前进行连接尝试?
非常感谢任何澄清.
我正在尝试使用NFC将Android应用中的URL发送到WP8手机.
当发送到Android设备时,URL会正确发送.然而,当发送到WP8时,IE加载到Play商店的链接而不是我想发送的链接(例如" http://www.stackoverflow.com ").
Play商店链接为:" https://play.google.com/store/apps/details?id=com.example.conductrnfc&feature=beam ".其中" com.example.conductrnfc "是项目中的包名称.
我用于生成NFC消息的代码如下.我在这里做错了什么打破了与WP8的兼容性?
NfcAdapter nfc = NfcAdapter.getDefaultAdapter(this);
nfc.setNdefPushMessageCallback(new NfcAdapter.CreateNdefMessageCallback() {
@Override
public NdefMessage createNdefMessage(NfcEvent event)
{
NdefRecord uriRecord = NdefRecord.createUri(urlString);
return new NdefMessage(new NdefRecord[] { uriRecord });
}
},
this);
Run Code Online (Sandbox Code Playgroud) 根据Android开发者网站上的教程,我能够使用NFC发送文件.但是我无法处理接收器部分.
我按照http://developer.android.com/training/beam-files/receive-files.html进行接收,我收到了关于接收器上Beam文件传输成功的通知.当用户点击此通知时,我希望应该启动我的应用.
我的接收活动有以下意图过滤器:
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
<data android:scheme="file" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
但即使文件传输完成,我的接收活动也永远不会被调用.如何在我的应用程序中收到该文件?
我知道你在这里回答了关于ICS的类似问题:https://stackoverflow.com/a/8320504
但是我仍然想知道一些事情,因为我正在研究我的硕士论文,因此我需要这个功能:
它仍然是真的,没有可能在没有点击屏幕的情况下从应用程序中发送NFC吗?(如"如何通过NFC"中的StickyNotes示例所示)
NFC的这一重大特性将来会再次出现吗?
是的,通过在设置中禁用AndroidBeam,NFC-send-feature也完全禁用.你只能接收NFC吗?
先感谢您.顺便说一句:我使用的是Android ICS 4.0.1