我希望能够显示我自己的日历活动,给出Android意图和要显示的日期。我相信这样做的意图如下:
Intent { act=android.intent.action.VIEW act=content://com.android.calendar/time/1409565898789 }
我已经设置了Activity以使用在我的AndroidManifest.xml中指定的intent过滤器处理此intent:
<activity
android:name=".MyActivity"
android:label="@string/title_activity_custom"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<!-- etc. -->
</activity>
为了测试此代码,我将应用程序加载到我的测试设备上并使用此命令发出意图:
adb shell am start -a android.intent.action.VIEW -d content://com.android.calendar/time/1410665898789
但是当我这样做时,会推出Android日历。我从未有机会在另一个应用程序中查看此时间。我想也许Android系统甚至不会将我的Activity识别为接收此Intent的候选者。
我不确定我做错了什么,我的搜索都没有找到我正在寻找的答案。有谁知道我错过了什么?
答案 0 :(得分:4)
您需要将方案,MIME类型以及主机添加到<intent-filter>
。现在,我不知道MIME类型是什么,所以我猜你正在寻找来自the AOSP Calendar app的<intent-filter>
:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="time/epoch" />
<data android:host="com.android.calendar" />
<data android:scheme="content"/>
</intent-filter>
您当前的<intent-filter>
将不会匹配任何内容,除非某个应用有错误,并尝试启动ACTION_VIEW
活动,但没有Uri
。