More Related Content
More from Kazutoshi Kashimoto (9)
中二病でも開発がしたい
- 16. ソースコード読む
void applyRouting(boolean force) {
// configure NFC-EE routing
if (mScreenState >= SCREEN_STATE_ON_LOCKED &&
mEeRoutingState == ROUTE_ON_WHEN_SCREEN_ON) {
Log.d(TAG, "NFC-EE ON");
mNfceeRouteEnabled = true;
mDeviceHost.doSelectSecureElement();
} else {
Log.d(TAG, "NFC-EE OFF");
mNfceeRouteEnabled = false;
mDeviceHost.doDeselectSecureElement();
}
// configure NFC-C polling
if (mScreenState >= POLLING_MODE) {
Log.d(TAG, "NFC-C ON");
mNfcPollingEnabled = true;
mDeviceHost.enableDiscovery();
} else {
Log.d(TAG, "NFC-C OFF");
mNfcPollingEnabled = false;
mDeviceHost.disableDiscovery();
}
}
package/app/Nfc/src/com/android/nfc/NfcService.java
スクリーン状態で
NFCポーリングを振り分けしてる!
2013年5月6日月曜日
- 17. 読む
// Screen state, used by mScreenState
static final int SCREEN_STATE_UNKNOWN = 0;
static final int SCREEN_STATE_OFF = 1;
static final int SCREEN_STATE_ON_LOCKED = 2;
static final int SCREEN_STATE_ON_UNLOCKED = 3;
static final int POLLING_MODE = SCREEN_STATE_ON_UNLOCKED;
・・・(省略)
void applyRouting(boolean force) {
・・・(省略)
// configure NFC-C polling
if (mScreenState >= POLLING_MODE) {
Log.d(TAG, "NFC-C ON");
mNfcPollingEnabled = true;
mDeviceHost.enableDiscovery();
} else {
Log.d(TAG, "NFC-C OFF");
mNfcPollingEnabled = false;
mDeviceHost.disableDiscovery();
}
}
package/app/Nfc/src/com/android/nfc/NfcService.java
ポーリングモードを
設定している定数
2013年5月6日月曜日
- 18. 改造する
// Screen state, used by mScreenState
static final int SCREEN_STATE_UNKNOWN = 0;
static final int SCREEN_STATE_OFF = 1;
static final int SCREEN_STATE_ON_LOCKED = 2;
static final int SCREEN_STATE_ON_UNLOCKED = 3;
static final int POLLING_MODE = SCREEN_STATE_ON_UNKNOWN;
・・・
void applyRouting(boolean force) {
・・・
// configure NFC-C polling
if (mScreenState >= POLLING_MODE) {
Log.d(TAG, "NFC-C ON");
mNfcPollingEnabled = true;
mDeviceHost.enableDiscovery();
} else {
Log.d(TAG, "NFC-C OFF");
mNfcPollingEnabled = false;
mDeviceHost.disableDiscovery();
}
}
package/app/Nfc/src/com/android/nfc/NfcService.java
定数を変更する
NFC探索の条件が変わる
2013年5月6日月曜日
- 20. さらに仕込む
//スリープ状態から復帰する
PowerManager.WakeLock wakelock;
wakelock = ((PowerManager) mContext.getSystemService
(Context.POWER_SERVICE))
.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK
| PowerManager.ACQUIRE_CAUSES_WAKEUP
| PowerManager.ON_AFTER_RELEASE, "disableLock");
wakelock.acquire();
//スクリーンロックを解除する
KeyguardManager.KeyguardLock keylock;
KeyguardManager keyguard = (KeyguardManager) mContext.getSystemService
(Context.KEYGUARD_SERVICE);
keylock = keyguard.newKeyguardLock("disableLock");
keylock.disableKeyguard();
スリープ復帰・ロック解除するコード
パーミッション追加
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
2013年5月6日月曜日
- 28. スリープ解除 ロック解除 ポージング タッチ
スリープまでにポーズ完了が必要
・ポージングは制限
・失敗のリスク!
ダサい
残念
残念じゃない
フルタイムNFCが変身シーケンスに与える影響
通常
ポージング
タッチ
ポーズ待機時間が無限
・ポージング自由
・失敗しない!
フルタイムNFCなら
2013年5月6日月曜日
- 32. • 測定条件
- バッテリー95%∼0まで時間計測
- ディスプレイ常時オン(細工有り)
- 無線LANオン
- その他の操作を一切しない
- JCROMのテーマは健全に
• あくまで個人レベルの超簡易計測です。
測定条件・結果の信憑性など、責任は一切負えません
バッテリー持ちを計測してみた
2013年5月6日月曜日