Android应用程序已安装,但无法在设备上打开

时间:2013-11-29 12:10:00

标签: android eclipse apk adt nfc

我在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>

1 个答案:

答案 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认为您的意图过滤器无法处理它。