NFC自动打开android应用程序

时间:2013-09-06 08:53:33

标签: android cordova android-manifest nfc

我已被指示获取NFC标签以打开我正在使用phonegap创建的应用程序,并且我将以下代码添加到我的AndroidManifest.xml文件中。

<intent-filter>
   <action android:name="android.nfc.action.NDEF_DISCOVERED" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="http"
            android:host="hesdev.nixtel.com"
            android:pathPrefix=""
            android:priority="1000"
            />
</intent-filter> 

我希望NFC标签打开应用程序并将其带到前面。与此类似的URL将写入我的标记:

hesdev.nixtel.com?nfc=kj43hg4g32o2j34hb3g43j453

我的问题是为什么它不适合我?当我扫描NFC标签时,它应该打开我的应用程序吗?事实并非如此。它打开选项卡上的Web浏览器并将我带到所述URL。

修改 的 这是我的完整清单文件......

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.healthe_scan"
    android:versionCode="1"
    android:versionName="1.0" >

    <supports-screens
    android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true"
    android:resizeable="true"
    android:anyDensity="true"
    />

    <uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<!--uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/-->

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.healthe_scan.MainActivity"
            android:label="@string/app_name" 
            android:configChanges="orientation|keyboardHidden">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <intent-filter>
                <action android:name="android.nfc.action.NDEF_DISCOVERED" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="http"
                     android:host="hesdev.nixtel.com"
                     android:pathPrefix=""
                     android:priority="1000"
                     />
            </intent-filter> 

        </activity>
        <activity 
            android:name="org.apache.cordova.DroidGap" 
            android:label="@string/app_name" 
            android:configChanges="orientation|keyboardHidden"> 
            <intent-filter></intent-filter> 
        </activity>
    </application>

</manifest>

1 个答案:

答案 0 :(得分:1)

〜7小时下来......

代码没有任何问题 - 这是我的标签无法正常工作。无论我的标签编写器做什么,它都会打开浏览器并将其指向指定的URL,但是没有启动应用程序。我把我的标签作者改成了这个......

https://play.google.com/store/apps/details?id=com.nxp.nfc.tagwriter&hl=en

它立刻就可以了。