いいえ、Androidは「よろしいですか、ちょうどHCEで有効になったアプリがあります」というような通知を送信しません。したがって、あなたはあなたのアプリでそのようなイベントを得ることはできません。そして、具体的には、あなたのデバイスの既存のHCEアプリ(あなたのコントロール下にない)がHCEを通じてアクティブ化されているかどうかを監視することはおそらくありません。
あなたができることは、独自のHCEサービス(特定のアプリケーションAIDに登録されている)を作成することです。このHCEサービスは、トランザクションを受け取った場合にアクティビティを開始できます(How can I send message from HostApduService to an activity?も参照)。
public class MyHostApduService extends HostApduService {
@Override
public byte[] processCommandApdu(byte[] apdu, Bundle extras) {
if ((apdu[1] == (byte)0xA4) && (apdu[2] == (byte)0x04)) {
// SELECT by AID
Intent intent = new Intent(this, MyActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
return new byte[]{ (byte)0x90, (byte)0x00 }
} else {
return new byte[]{ (byte)0x6D, (byte)0x00 }
}
}
}