2012-08-30 6 views
0

앱을 열 때 (태그를 스캔 할 때 자동으로 열림) NFC 태그를 읽으려고하지만 페이로드를 읽을 수 없습니다. 사실, 나는 태그를 전혀 고를 수 없다. 태그의 MIME 형식과 페이로드를 읽는 데 다른 앱을 사용했습니다. 모든 것이 잘된 것처럼 보입니다.Android NFC 태그 읽기. 의도 항상 null

분명한 사실은 사과드립니다. - 게시하기 전에 설명서를 읽고 다양한 다른 출처를 확인했지만 아무런 소용이 없습니다.

내가 볼 수 있으며 코드를 컴파일해도 괜찮습니다. 아래 코드 로그 캣 쇼 :

08-30 20:15:50.248: E/Activity...(3703): Hello world. Intent Type: null :

package com.spotsofmagic.spotsofmagic; 

import android.app.Activity; 
import android.app.AlertDialog; 
import android.bluetooth.BluetoothAdapter; 
import android.content.DialogInterface; 
import android.content.DialogInterface.OnClickListener; 
import android.content.Intent; 
import android.nfc.NdefMessage; 
import android.nfc.NdefRecord; 
import android.nfc.NfcAdapter; 
import android.os.Bundle; 
import android.os.Parcelable; 
import android.util.Log; 
import android.widget.TextView; 


public class MainActivity extends Activity implements OnClickListener { 
    private static final String TAG = "Activity..."; 
    private NfcAdapter mAdapter; 
    private TextView mTextView; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main_activity); 

     // grab our NFC Adapter 
     mAdapter = NfcAdapter.getDefaultAdapter(this); 

     // TextView that we'll use to output messages to screen 
     mTextView = (TextView)findViewById(R.id.text_view); 

     displayMessage("Loading payload..."); 
     // see if app was started from a tag and show game console 
     Intent intent = getIntent(); 


     Log.e(TAG, "Hello world. Intent Type: "+ intent.getType()); 

매니페스트 파일;

<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" /> 

<uses-permission android:name="android.permission.NFC" /> 
<uses-permission android:name="android.permission.BLUETOOTH" /> 
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 
<uses-feature android:name="android.hardware.nfc" android:required="true" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 

    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity 
     android:name=".CardActivity" 
     android:label="@string/app_name" > 

     <!-- Handle a collectable card NDEF record --> 
     <intent-filter> 
      <action android:name="android.nfc.action.NDEF_DISCOVERED"/> 
      <data android:mimeType="application/vnd.spotsofmagic.bluetoothon"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
     </intent-filter> 
    </activity> 

</application> 

+0

매니페스트 파일의 내용을 표시 할 수 있습니까? –

+0

물론입니다. 방금 게시물을 편집하고 하단에 나타났습니다. – Mike

+0

나는 타입을 얻을 수는 없지만 그것이 도움이된다면'intent.getAction()'을 할 수있다. 이걸로 나는 의도가 null이 아니라는 것을 알고 있습니다. 당신의 경우가 다를 수도 있습니다. –

답변

1

NFC 의도 필터는 CardActivity 용이며 MainActivity 용 필터는 아닙니다. 그래서 나는 그 문제가 CardActivity에 있다고 기대할 것이다.

+0

감사드립니다. thanks – Mike