我正在尝试创建一个Android应用程序,可以通过点击图标(通常的方式)和扫描NFC标签来启动。这两种方式都应该导致相同的(主要)活动。
事实证明,它要么或对我来说:如果我添加动作NDEF_DISCOVERED为我的MainActivity以及MAIN动作(见AndroidManifest下面),并重新安装手机上的应用程序,那么应用程序图标不再出现在任何地方,我只能用NFC标签启动应用程序。
<application
android:label="@string/app_name"
android:icon="@drawable/icon">
<activity
android:name=".activity.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<data
android:host="webofthings.org"
android:scheme="http" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".activity.PhotoActivity"/>
<activity android:name=".activity.ProductDescriptionActivity"/>
</application>
我做错了什么吗?这是可能的吗?或者Main活动只能由单个操作触发吗?(根据Android文档,intent-filter对象可以包含1..n行动…)。
将intent过滤器更改如下:
<activity
android:name=".activity.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.NDEF_DISCOVERED" />
<data
android:host="webofthings.org"
android:scheme="http" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>