其實,我不認爲NFC服務已停用。當屏幕具有較低的值時,則設備停止詢問周圍的NFC標籤。你可以從這個代碼中看到這一點:
// configure NFC-C polling
if (mScreenState >= POLLING_MODE) {
if (force || !mNfcPollingEnabled) {
Log.d(TAG, "NFC-C ON");
mNfcPollingEnabled = true;
mDeviceHost.enableDiscovery();
}
} else {
if (force || mNfcPollingEnabled) {
Log.d(TAG, "NFC-C OFF");
mNfcPollingEnabled = false;
mDeviceHost.disableDiscovery();
}
}
但NFC-EE路由啓用util的屏幕狀態是高於3210:
// configure NFC-EE routing
if (mScreenState >= SCREEN_STATE_ON_LOCKED &&
mEeRoutingState == ROUTE_ON_WHEN_SCREEN_ON) {
if (force || !mNfceeRouteEnabled) {
Log.d(TAG, "NFC-EE ON");
mNfceeRouteEnabled = true;
mDeviceHost.doSelectSecureElement();
}
} else {
if (force || mNfceeRouteEnabled) {
Log.d(TAG, "NFC-EE OFF");
mNfceeRouteEnabled = false;
mDeviceHost.doDeselectSecureElement();
}
}
服務本身已啓動,並在這個類的其他部分停止。
我也有同樣的問題和搜索結果。檢查我的問題http://stackoverflow.com/questions/10733723/launching-nfc-when-screen-is-locked-in-android – Venky
+1,尼斯問題 – Venky
我很確定屏幕必須打開和解鎖(如常數暗示:「... ON_UNLOCKED」 但我找不到任何官方肯定,因此我仍然希望有人能幫助我。 我正在考慮的解決方法是製作自己的主屏幕/啓動器和放入你自己的鎖定屏幕上,這將是一個僞造的,但NFC服務應該仍在運行,我認爲你必須避免使用鍵盤鎖,因爲它似乎也使用常量 – hamena314