0

P2P NFC を使用する Android アプリがあります。NFC は機能しますが、起動するにはデバイスを 2 回タップする必要があります。アプリをデバッグしてデバイスをタップすると、createNdefMessage 関数が呼び出されますが、JavaBinder で例外がスローされます。実行モードではクラッシュしませんが、NFC を開始するにはデバイスを 2 回タップする必要があります。

NFC の前に、転送するファイルを選択するためにファイル セレクターを呼び出します。ここに私のコードOnCreateがあります

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    //  INFO TEXTVIEW
    mInfoText = (TextView) findViewById(R.id.info_text_view);

    //  FILE SELECTOR BUTTON
    mStartActivityButton = (Button)findViewById(R.id.start_file_picker_button);
    mStartActivityButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            switch(v.getId()) {
            case R.id.start_file_picker_button:

                // Create a new Intent for the file picker activity
                Intent intent = new Intent(getApplicationContext(), FilePickerActivity.class);

                // Start the activity
                startActivityForResult(intent, REQUEST_PICK_FILE);

                break;
            }
        }

    });

    //  CHECK FOR AVAILABLE NFC ADAPTOR
    mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
    if (mNfcAdapter == null) {

        mInfoText.setText("NFC is not available on this device.");
    } else {
        // Register callback to set NDEF message
        mNfcAdapter.setNdefPushMessageCallback(this, this);
        // Register callback to listen for message-sent success
        mNfcAdapter.setOnNdefPushCompleteCallback(this, this);
    }

}

createNdefMessage

public NdefMessage createNdefMessage(NfcEvent event) {
    Time time = new Time();
    time.setToNow();
    mInfoText.setTextColor(Color.WHITE);
    mInfoText.setText("File Transfer In Progress ...");

     NdefMessage msg = new NdefMessage(NdefRecord.createMime(
    "application/com.example.android.beam", text.getBytes()));

     return msg;
}

私のアプリは例外を介して

mInfoText.setTextColor(Color.WHITE);

私は2つの意図を持っているからですか?

4

1 に答える 1