我可以使用NFC标签启动我的应用。在我从活动中的标签读取数据之前,请确保意图操作来自NFC。
但是,当我登录intent.getAction()
时,它总是等于android.intent.action.MAIN
,而不是预期的android.nfc.action.NDEF_DISCOVERED
。
我正在清单中使用以下代码:
<activity
android:name=".SplashscreenActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.SplashScreen">
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent->
</activity>
并像这样确定SplashscreenActivity中意图的起源:
public class SplashscreenActivity extends Activity {
...
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splashscreen);
final Intent intent = getIntent();
Log.w("NFC", "Intent is: " + intent.getAction());
...
}
我已经亲自配置了NFC芯片,并且知道它包含应用程序包名称,文本/纯文本值和URI。我已经使用NFC阅读器对此进行了验证。