[英]Launching an Activity with an Intent
我的AndroidManifest中包含以下內容:
<activity android:name="IntentChild"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.EDIT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.intent.cursor.item/intent_example"
android:host="example.intent"
android:path="intent_example"
android:scheme="content"
/>
</intent-filter>
</activity>
我與啟動活動
Uri uri = new Uri.Builder().scheme("content").authority("example.intent").appendPath("intent_example").build();
Intent intent = new Intent(Intent.ACTION_EDIT, uri);
IntentExample.this.startActivity(intent);
但是我得到:
E/AndroidRuntime( 865): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.EDIT dat=content:// example.intent/intent_example }
我究竟做錯了什么? 另外, Uri.Builder.authority()
是否與清單中<data>
標簽的android:host
屬性引用的內容相同?
在@ A--C的評論提示下,我最終添加了對Intent.setType()
的調用以設置所需的MIME類型:
Uri uri = new Uri.Builder().scheme("content").authority("example.intent").appendPath("intent_example").build();
Intent intent = new Intent(Intent.ACTION_EDIT, uri);
intent.setType("vnd.intent.cursor.item/intent_example");
IntentExample.this.startActivity(intent);
為簡單起見,我還修剪了<intent-filter>
僅聲明android:mimeType
。 我猜,但不是完全確定,這並不像以前的更改那么重要。
<activity android:name="IntentChild"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.EDIT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.intent.cursor.item/intent_example"/>
</intent-filter>
</activity>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.