我在Android上创建了一个应用程序。我正在用ADT在eclipse上开发它。
关于nfc。目前它只读取和写入标记。
我在移动设备上运行我的应用程序进行测试,效果很好。
所以它编译得很好并在我的Xperia Z1 Sony上运行良好,但是当我拔掉手机并安装apk时我遇到了问题:
安装运行良好,但我有两个选择“终止”或“打开”。 打开是不可点击的...我转到设置 - >应用程序 - >已安装,我看到我的应用程序即安装。我可以强制停止清除缓存但不能打开它......我无法理解为什么。
当我从eclipse启动它时,它在我的手机上运行良好但是当我想在我的电脑上拔下电脑时,它不想打开它。安装期间没有错误消息......
我激活了开发模式并允许从未知来源安装......
有人有线索吗?
这是我的manifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mynfc"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.NFC" />
<uses-feature
android:name="android.hardware.nfc"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.mynfc.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain"/>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".WriteATagActivity"/>
</application>
</manifest>
答案 0 :(得分:3)
您应该将意图过滤器分成以下内容:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
对于要匹配的意图过滤器,操作,类别和数据应该是正确的。当您通过图标打开应用程序时,它将发送MAIN操作的意图和类别LAUNCHER。因为它不包含数据类型,并且因为类别与DEFAULT不匹配且操作与NDEF_DISCOVERED不匹配,所以Android认为您的意图过滤器无法处理它。