我正在编写一个使用前台调度程序的应用程序,以便从NFC标签读取和写入数据。 当我将标签接近电话时(我可以听到系统通知),我的应用程序在大约五秒后收到意图。我怎样才能减少这种延迟? 我在Nexus 5 / Android 5.0和三星Galaxy Ace 4 / Android 4.4.2上尝试了代码。结果相同。 这是代码:
public class MainActivity extends Activity{
PendingIntent nfcIntent;
IntentFilter[] intentFiltersArray;
String[][] techListsArray;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//....
nfcIntent = PendingIntent.getActivity(this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
IntentFilter inf_ndef = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED);
IntentFilter inf_tech = new IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED);
inf_ndef.addDataType("text/plain");
intentFiltersArray = new IntentFilter[] { inf_ndef, inf_tech };
techListsArray = new String[][] { NFCHandler.getTechs(), NFCHandler.getAllTechs() };
}
public void onNewIntent(Intent intent) {
Log.d("Hey!", "Intent");
//Do something...
}
//this method is called on button press
public void startDispatcher() {
NfcAdapter.getDefaultAdapter(this).enableForegroundDispatch(this,
nfcIntent, intentFiltersArray, techListsArray);
}
}