本帖最后由 DingXueBin001 于 2013-08-24 17:19:43 编辑

解决方案 »

  1.   

    参考官方API android-sdk-windows/docs/guide/topics/connectivity/nfc/nfc.html
    activity里面要配置过滤器
    <intent-filter>
        <action android:name="android.nfc.action.TAG_DISCOVERED"/>
    </intent-filter>
      

  2.   

    手机自带的能得到 你的不行 那估计是权限问题了  搞成系统app试试
      

  3.   

    这个要怎样弄成系统app呢?设置吗?
      

  4.   

    这个要怎样弄成系统app呢?设置吗?
    额  push到system/app下或者使用手机的源码下的签名(使用platform签名)
      

  5.   

    我加了进去,但还是不行啊……我还在测试,不过现在又觉得程序不对……能不能帮我读一下,看这样写对不对?编译通过<?xml version="1.0" encoding="utf-8"?>
    <!-- Copyright (C) 2010 The Android Open Source Project     Licensed under the Apache License, Version 2.0 (the "License");
         you may not use this file except in compliance with the License.
         You may obtain a copy of the License at          http://www.apache.org/licenses/LICENSE-2.0     Unless required by applicable law or agreed to in writing, software
         distributed under the License is distributed on an "AS IS" BASIS,
         WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         See the License for the specific language governing permissions and
         limitations under the License.
    --><!-- Declare the contents of this Android application.  The namespace
         attribute brings in the Android platform namespace, and the package
         supplies a unique name for the application.  When writing your
         own application, the package name must be changed from "com.example.*"
         to come from a domain that you own or have control over. -->
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.android.nfc"
    >
        <uses-permission android:name="android.permission.NFC" />
        <uses-permission android:name="android.permission.CALL_PHONE" />
        <application
            android:icon="@drawable/icon"
            android:label="@string/app_name"
        >
        <activity android:name=".simulator.FakeTagsActivity"
            android:theme="@android:style/Theme.NoTitleBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
            <activity android:name="TagViewer"
                android:theme="@android:style/Theme.NoTitleBar"
            >
                <intent-filter>
                    <action android:name="android.nfc.action.TAG_DISCOVERED"/>
                    <category android:name="android.intent.category.DEFAULT"/>
                </intent-filter>
            </activity>
        </application>
        <uses-sdk android:minSdkVersion="9" />
        <uses-feature android:name="android.hardware.nfc" android:required="true" />
    </manifest>
    程序写的没有问题。看你的manifest文件配置正确没有。nfc权限是否添加。android-sdk-windows\samples\android-10\NFCDemo  参考下系统的demo
    参考开源的nfc 实现,对比下你的有什么问题
    http://nfc.android.com/
      

  6.   

    大家好!我也遇到了这个问题,经过一番修改,已经可以过滤了。 贴出来供大家参考:onResume里,If判断不够完整,改成这样:
    if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(getIntent().getAction())
    || NfcAdapter.ACTION_TAG_DISCOVERED.equals(getIntent()
    .getAction())
    || NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent()
    .getAction())) {..........}
    AndroidManifest.xml里,intentFilter可以写不止一个,这样:
    <activity......>
    <intent-filter>
                    <action android:name="android.nfc.action.NDEF_DISCOVERED" />
                    <data android:mimeType="text/plain" />
    </intent-filter>
    <intent-filter>
                    <action android:name="android.nfc.action.TECH_DISCOVERED" />
    </intent-filter>
    <meta-data
                    android:name="android.nfc.action.TECH_DISCOVERED"
                    android:resource="@xml/nfc_tech_filter" />
    <intent-filter>
                    <action android:name="android.nfc.action.TAG_DISCOVERED" />
                    <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
     </activity>最后写一下我的nfc_tech_filter:
    <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">    <tech-list>
            <tech>android.nfc.tech.MifareClassic</tech>
        </tech-list>
        <tech-list>
            <tech>android.nfc.tech.MifareUltralight</tech>
        </tech-list>
        <tech-list>
            <tech>android.nfc.tech.IsoDep</tech>
        </tech-list>
        <tech-list>
            <tech>android.nfc.tech.MifareUltralight</tech>
            <tech>android.nfc.tech.NfcA</tech>
            <tech>android.nfc.tech.NfcF</tech>
        </tech-list>
        <tech-list>
            <tech>android.nfc.tech.MifareClassic</tech>
            <tech>android.nfc.tech.NfcA</tech>
            <tech>android.nfc.tech.NdefFormatable</tech>
        </tech-list>
        <tech-list>
            <tech>android.nfc.tech.IsoDep</tech>
            <tech>android.nfc.tech.NfcA</tech>
            <tech>android.nfc.tech.NfcB</tech>
            <tech>android.nfc.tech.NfcF</tech>
            <tech>android.nfc.tech.NfcV</tech>
            <tech>android.nfc.tech.Ndef</tech>
            <tech>android.nfc.tech.NdefFormatable</tech>
            <tech>android.nfc.tech.MifareClassic</tech>
            <tech>android.nfc.tech.MifareUltralight</tech>
        </tech-list></resources>这样问题就解决了,只要手机自带NFC识别的到,我们写的这个也是可以识别的,除非不支持该数据标签,例如我遇到的三星S4,就不支持一种小卡。。