【发布时间】:2011-09-09 05:04:19
【问题描述】:
如果我在应用程序 A 中有一个内容提供者和 CONTENT_URI,它也在清单中。如何从应用程序 B 调用它?
我是否需要在包含我的 sqlite 数据库的类中编写代码?还是我需要创建一个全新的课程并从那里致电提供者?
提前感谢。
【问题讨论】:
如果我在应用程序 A 中有一个内容提供者和 CONTENT_URI,它也在清单中。如何从应用程序 B 调用它?
我是否需要在包含我的 sqlite 数据库的类中编写代码?还是我需要创建一个全新的课程并从那里致电提供者?
提前感谢。
【问题讨论】:
您可以根据其性质注册 Activity B 以接受 URI。
为此,您将以下“intent-filer”部分添加到 AndroidManifest.xml 中的 Activity B
<activity android:name="ACTIVITY B PATH">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="THE MIME TYPE TO ACCEPT" />
</intent-filter>
</activity>
这将注册 Activity B 以接受带有计算 MIME 类型的 URI 的 VIEW 操作。
那么,当Activity A运行如下代码时:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(CONTENT_URI));
activity.startActivity(intent);
Activity B 将自动激活,您可以通过 onCreate() 方法调用 getIntent().getData() 来读取 URI。
您可以选择最适合您需要的不同操作(查看、编辑、插入...)和数据类型(MIME、SCHEMA、路径...)。
【讨论】: