我在学习安卓nfc知识时过滤nfc卡的类型。获取到的总是android.intent.action.MAIN,请问我要如何修改
这是清单文件
<activity
android:name=".Beam"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER" />
intent-filter>
<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.nfc.action.TECH_DISCOVERED" />
intent-filter>
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" />
intent-filter>
<meta-data
android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/nfc_tech_filter" />
activity>
这是代码文件
@Override
protected void onResume() {
super.onResume();
//得到是否检测到ACTION_TECH_DISCOVERED触发
if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(getIntent().getAction())) {
//处理该intent
System.out.println("这个是tech类型的nfc");
Tag tag = getIntent().getParcelableExtra(NfcAdapter.EXTRA_TAG);
// processIntent(getIntent());
// onNewIntent(getIntent());
}else if(NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction())) {
System.out.println("这个是NDEF类型的nfc");
}else if(NfcAdapter.ACTION_TAG_DISCOVERED.equals(getIntent().getAction())){
System.out.println("这个是tag类型的nfc");
}else{
Tag tag = getIntent().getParcelableExtra(NfcAdapter.EXTRA_TAG);
System.out.println(getIntent().getAction());
System.out.println(tag);
}
}
运行结果:
D/AppScoutStateMachine: 19985-ScoutStateMachinecreated
I/System.out: android.intent.action.MAIN
I/System.out: null
我想得到nfc类型然后读取,可是一直读取的是这个MAIN,怎么办