2017-11-14 30 views
0

私はアンドロイドスタジオの初心者ですが、私はhceプロジェクトに取り組んでいます。私はキーのように動作するアプリをビルドしており、読者が正しい援助がドアを開けたことを検出したとき。私はホストapduサービスを拡張し、援助を宣言します。私は、あなたの名前とパスワードを紹介するのが私のアプリの宣伝であるので、サービスやAndroidのnfcの許可を止めたいと思っています。しかし、私のアプリのnfcはバックグラウンドで動作し、パスワードを入力する前にnfcを停止する方法を知らない。HostapduServiceの起動方法と停止方法

public class HceService extends HostApduService { 

    private static final byte[] SELECT_AID = {0x00, (byte) 0xA4, 0x04, 0x00, 0x07, (byte) 0xBB, 0x52, 0x61, 0x75, 0x6c, 0x0d, 0x0a,}; 
    private static final byte[] MY_UID = {0x01, 0x02, 0x03, 0x04, (byte) 0x90, 0x00}; 
    private static final byte[] MY_ERROR = {0x6f, 0x00}; 






    @Override 
    public byte[] processCommandApdu(byte[] apdu, Bundle extras) { 
     if (Arrays.equals(SELECT_AID, apdu)) 
      return MY_UID; 
     else return MY_ERROR; 

    } 

    @Override 
    public void onDeactivated(int reason){ 
    } 
} 
<service 
      android:name=".HceService" 
      android:exported="true" 
      android:permission="android.permission.BIND_NFC_SERVICE"> 
      <intent-filter> 
       <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE" /> 
      </intent-filter> 
      <meta-data 
       android:name="android.nfc.cardemulation.host_apdu_service" 
       android:resource="@xml/apduservice" /> 
     </service> 

     <?xml version="1.0" encoding="utf-8"?> 
<host-apdu-service xmlns:android="http://schemas.android.com/apk/res/android" 
    android:requireDeviceUnlock="false" > 
    <aid-group 
     android:category="other"> 
     <aid-filter android:name="BB5261756c0d0a"/> 
    </aid-group> 
</host-apdu-service> 
+0

https://stackoverflow.com/q/25176181/2425802もご確認ください。 –

答えて

0

あなたは、ユーザ入力のためのNFC送信を停止するべきではありません。あなたのユーザのための認証記録を残して、一度にすべてのコマンドを送信してください。それ以外の場合は、最初のタップでアプリを起動し、ユーザーを認証させてからもう一度タップします。

関連する問題