Android NFC抛出异常

时间:2013-06-04 14:16:38

标签: android nfc

我有一个使用P2P NFC的Android应用程序。 NFC工作但我必须点击设备两次启动它。当我调试我的应用程序并点击设备时,它调用createNdefMessage函数,但在JavaBinder上抛出异常。 在运行模式下它不会崩溃,但我必须点击两次设备才能启动NFC。

在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);

是因为我有两个意图吗?

1 个答案:

答案 0 :(得分:0)

我认为,当您致电mInfoText.setTextColor(Color.WHITE) mInfoText时,该指针为空。在致电findViewById()

之前,请尝试使用setTextColor进行初始化