繁体   English   中英

我如何使用.apk文件到我自己的应用程序android中?

[英]how can i use .apk file into my own application android?

在developer.android.com中,我阅读了android的主要功能,即可以在自己的应用程序中使用其他应用程序的元素。 1)我们如何在Android应用程序中使用从Android市场下载的.apk? 2)我们如何在新创建的应用程序中使用自己创建的应用程序?

请为此提供指导,如果可能的话,请提供示例代码?

此致Rajendar

我想你的意思

Android的主要功能是一个应用程序可以利用其他应用程序的元素(前提是这些应用程序允许)。 例如,如果您的应用程序需要显示图像的滚动列表,而另一个应用程序已经开发了合适​​的滚动条并使之可供其他人使用,则可以调用该滚动条来完成工作,而不必自己开发。 您的应用程序未包含其他应用程序的代码或未链接到该应用程序。 相反,它只是在需要时启动其他应用程序的那一部分。

最后两个句子至关重要。 并且该链接提供了有关它的更多信息。 但简单地说:应用程序作者可以以可以被其他人重用的方式编写他的代码。 他/她可以通过将“意图过滤器”放入其应用程序的AndroidManifest.xml 例如,Google的Camera应用程序(也提供相机功能和图片库的应用程序-是的,该应用程序可以在主屏幕上“暴露”许多“入口点” =图标)具有以下活动定义(其中之一):

<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() ),并在调用活动的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 ... */

    }
}

其他选项正在使用:其他服务或ContentProvider。

如果您还有其他疑问,请不要犹豫。

Android使用Intents允许应用程序请求工作由其他应用程序中的软件完成。 请参阅我对这个问题的回答,以获取有关Intent的更多详细信息,以及有关您的应用程序如何要求Browser应用程序显示网页的示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM