在developer.android.com中我读到android的核心功能是你可以在自己的应用程序中使用其他应用程序的元素。我对这一行很感兴趣。 1)我们如何使用从Android市场下载的.apk下载到我们的应用程序? 2)我们如何将我们自己创建的应用程序用于新创建的应用程序?
请就此提供指导以及可能的样本片段吗?
此致 Rajendar
答案 0 :(得分:1)
我猜您的意思是that:
Android的核心功能是 一个应用程序可以使用 其他应用程序的元素 (如果申请许可的话 它)。例如,如果您的应用程序 需要显示滚动列表 图像和另一个应用程序 开发出合适的卷轴并制作而成 它可以给别人,你可以打电话 在那个卷轴上做这项工作, 而不是发展自己的。您的 申请不包含 其他应用程序或链接的代码 它。相反,它只是启动 另一个应用程序的那一块 当需要时。
最后两句话至关重要。链接提供了有关它的更多信息。但简单地说:应用程序作者可以以可以为其他人重用的方式编写他的代码。他/她可以通过将“意图过滤器”放入他/她的应用程序AndroidManifest.xml
中来实现。例如。谷歌的相机应用程序(提供相机功能和图像库的应用程序 - 是的,应用程序可以“暴露”许多“入口点”=主屏幕中的图标)具有活动定义(许多之一)如下:
<activity android:name="CropImage" android:process=":CropImage" android:configChanges="orientation|keyboardHidden" android:label="@string/crop_label">
<intent-filter android:label="@string/crop_label">
<action android:name="com.android.camera.action.CROP"/>
<data android:mimeType="image/*"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.ALTERNATIVE"/>
<category android:name="android.intent.category.SELECTED_ALTERNATIVE"/>
</intent-filter>
</activity>
这意味着可以通过发送意图来使用它来裁剪图像功能:
/* prepare intent - provide options that allow
Android to find functionality provider for you;
will match intent filter of Camera - for matching rules see:
http://developer.android.com/guide/topics/intents/intents-filters.html#ires */
Intent i = new Intent("com.android.camera.action.CROP");
i.addCategory(Intent.CATEGORY_DEFAULT);
i.setType("image/*");
/* put "input paramters" for the intent - called intent dependent */
i.putExtra("data", /*... Bitmap object ...*/);
i.putExtra( /*... other options, e.g. desired dimensions ...*/ );
/* "call desired functionality" */
startActivityForResult(i, /* code of return */ CROPPING_RESULT_CODE);
可以在一个Activity中定义的 CROPPING_RESULT_CODE
用于区分返回的外部活动(如果有人调用多个外部函数,则有用),并且在调用活动的onActivityResult()
方法中提供,该方法在“远程”时调用“应用程序完成 - 以下示例:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case CROPPING_RESULT_CODE:
/* ... crop returned ... */
if (data != null) {
/* get cropped bitmap */
Bitmap bmp = data.getParcelableExtra("data");
/* ... and do what you want ... */
}
case ANOTHER_RESULT_CODE:
/* ... another external content ... */
}
}
其他选项正在使用:其他服务或内容提供商。
如果您还有其他问题,请不要犹豫。
答案 1 :(得分:0)
Android使用Intents允许应用程序请求工作由驻留在其他应用程序中的软件完成。有关Intents的更多详细信息,请参阅my answer to this question,以及应用程序如何要求浏览器应用程序显示网页的示例。