Android:主要项目所依赖的库中的NFC意图

时间:2018-07-24 17:19:58

标签: java android

我是Android开发的新手...

我有一个使用库将数据上传到网站的应用程序。我想对应用程序进行添加,以便能够读取NFC标签。

我开始创建一个小的独立应用程序来解决NFC的问题。该应用程序工作正常。现在,我需要将某些代码引入依赖于上述库的其他应用程序中。

问题是,除非我将一个应用程序节点添加到LIBRARY中的AndroidManifest.xml中,以指定NFC意图,否则不会触发意图。

[上述库清单的片段]

<application
    android:supportsRtl="true"
    android:allowBackup="true">
    <activity
        android:name=".MainActivity"
        android:label="My App..."
        android:supportsRtl="true">
        <intent-filter>
            <action android:name="android.nfc.action.TAG_DISCOVERED" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        <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.nfc.action.TECH_DISCOVERED" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
</application>

[主应用程序在其清单中包含此应用程序节点]

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.microsoft.azure.storage.samples.MainActivity"
        android:label="@string/app_name" >
        <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.TECH_DISCOVERED" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="text/plain" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.nfc.action.TAG_DISCOVERED" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="text/plain" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.nfc.action.NDEF_DISCOVERED" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="text/plain" />
        </intent-filter>
        <meta-data
            android:name="android.nfc.action.TECH_DISCOVERED"
            android:resource="@xml/nfc_tech_filter" />
    </activity>
</application>

现在出现了问题...。当检测到标签时,android会尝试从库清单文件启动活动。由于该活动不存在,因此我得到了ClassNotFoundException。我尝试从应用程序中为LIBRARY清单中应用程序节点的android:name指定MainActivity类,但是:

  1. 我无法编译代码。
  2. 即使那行得通,这也是极差的做法...

如何在不必在库清单中添加意图过滤器节点的情况下触发NFC意图?

谢谢!

0 个答案:

没有答案