`
咖啡动力
  • 浏览: 440486 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

一个apk调用另外一个apk的activity

阅读更多

  系统提供了很多可以直接调用的Activity,通过指定的Intent就可以调用,比如打开搜索的:

  Java代码


  Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);

  intent.putExtra(SearchManager.QUERY,"searchString")

  startActivity(intent);

  Intent.ACTION_WEB_SEARCH是一个字符串,是“搜索”这个Activity的标识,extra是传给这个activity的一些数据。发送出这个intent之后,系统根据action字符串Intent.ACTION_WEB_SEARCH知道了是要调用哪个activity,如果有重名,会弹出一个选择对话框。然后打开此activity,实现想要做的事情。

  那么,我们自己怎么来实现呢。

  首先,写一个activity,在AndroidManifest.xml里面的intent-filter中,给这个activity命名,

  Xml代码

  < intent-filter>

  < action android:name="chroya.foo"/>

  < category android:name="android.intent.category.DEFAULT"/>

  < /intent-filter>

  < intent-filter>

  < action android:name="chroya.foo"/>

  < category android:name="android.intent.category.DEFAULT"/>

  < /intent-filter>

  然后安装。安装完毕之后,你会发现,系统中找不到这个程序。别急,它确实安装在手机里面了,但是因为他不是main的,所以系统不会把他当做Application的入口程序。

  而要想打开这个activity,只有知道它名字的人才可以。跟系统的intent一样使用。它的名字定义为"chroya.foo",所以,这里用这个字符串就可以调用它了:

  Java代码

  Intent intent = new Intent("chroya.foo");

  startActivity(intent);

  Intent intent = new Intent("chroya.foo");

  startActivity(intent);

  我用刚才举的那个系统的intent说明,它的activity里面使用 getIntent().getBundleExtra(SearchManager.QUERY)来接收传递进来的搜索字符串参数。而这个 SearchManager.QUERY是关键字。如果要自己实现这种功能,只需要定义好关键字,然后从BundleExtra中取就行了
分享到:
评论

相关推荐

    Android一个apk启动另外一个apk

    在Android平台上,一个APK应用启动另一个APK应用是一个常见的需求,这可能涉及到应用之间的交互、服务调用或者用户引导到不同的应用体验。这个过程主要依赖于Android的Intent机制,Intent是Android系统中用于组件间...

    android两个APK相互调用并传参数

    在两个APK间调用时,如果知道被调用APK的Activity完全限定类名(包括包名),可以直接创建一个显式Intent。例如: ```java Intent intent = new Intent(); intent.setComponent(new ComponentName(...

    androidAPK外部调用应用activity

    本文将深入探讨如何从一个Android APK外部调用另一个应用的Activity,特别是针对示例代码中的场景——调用特定包名下的Activity。 #### 一、理解Intent与Component Name 在Android中,Intent是应用组件间通信的...

    同一个APK多个icon进入同一个Activity的不同tab页

    本文将详细介绍如何实现“同一个APK多个icon进入同一个Activity的不同tab页”。 首先,我们需要理解Android中Activity的启动模式(launchMode)。Android提供了四种启动模式: 1. standard:默认模式,每次启动...

    Android 通过反射启动未安装的APK中的Activity

    然而,如果我们想要启动一个未安装APK中的Activity,常规方式是无法做到的,因为系统无法解析其manifest文件。 反射的运用使得我们可以在运行时动态地加载和调用类的方法。以下是一般步骤: 1. **读取APK**:首先...

    android 系统调用安装apk

    这种方法是通过创建一个`Intent`对象,并设置其动作为`ACTION_VIEW`来触发系统默认的应用程序安装流程。具体步骤如下: 1. **准备APK文件路径**:首先,获取设备外部存储目录,并结合APK的文件名,构造出完整的文件...

    java实现解析APK

    首先,APK实际上是一个ZIP格式的压缩包,包含了AndroidManifest.xml、资源文件、dex字节码等。传统的解析方法是通过读取ZIP文件并解析XML文件,但这对于经过加密或加壳处理的APK可能无效,因为它们可能对原始数据...

    Framework层添加一个公共资源apk,可供应用调用,资源文件

    本话题将深入探讨如何在Framework层添加一个公共资源apk,以便于其他应用调用其中的资源文件。这个过程涉及到Android系统的资源管理、权限控制以及组件的交互。 首先,我们要理解Android的资源管理机制。Android...

    Android 下载APK 安装APK 打开APK

    2. 构建启动Intent:创建一个ACTION_MAIN和CATEGORY_LAUNCHER类型的Intent,设置数据URI为新安装应用的包名。 3. 启动应用:调用startActivity()启动目标应用。 在实际开发中,为了实现上述功能,开发者需要对...

    Unity中安装APK

    这段代码通过Intent启动了一个用于查看APK文件的操作,从而触发安装过程。 #### 3. 构建原生库 使用Android NDK构建上述Java代码,生成.so文件,并将其放置在Unity项目的`Plugins/Android`目录下。 #### 4. 编写C#...

    Apk完全退出Apk

    在Android应用开发中,完全退出一个APK是一个常见的需求,特别是在一些需要确保用户隐私或希望关闭所有服务的情况下。本文将详细讲解如何实现这个功能,并基于提供的`MyAplication.java`源代码文件和`完全退出程序...

    NativeActivity调用过程

    在Android系统中,Native Activity是一种特殊的应用程序结构,它允许开发者直接使用C或C++等语言编写的代码创建一个应用,而不必通过Java层进行桥接。Native Activity适用于需要高性能计算或者图形处理的应用场景,...

    apk-parser

    使用apk-parser时,开发者通常会首先创建一个解析器实例,然后调用其提供的方法,如解析APK的Manifest文件,获取应用的活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供者(Content ...

    Android动态加载未安装apk

    为了让未安装的APK中的Activity能够与主应用进行交互,需要在主应用中创建一个代理Activity,处理相关生命周期回调。例如,重写`onCreate()`, `onStart()`, `onResume()`等方法,并通过反射调用动态加载APK中实际...

    Android蓝牙打印机apk

    【Android蓝牙打印机apk】是一个专为Android系统设计的应用程序,其主要功能是通过蓝牙技术连接到支持蓝牙的打印机,实现从手机直接进行打印操作。这个Demo项目为开发者提供了一个直观的示例,展示了如何在Android...

    APK信息提取,好用的apk信息提取工具

    APK信息提取是一项重要的技术工作,它可以帮助开发者、安全研究人员或普通用户了解一个APK应用的基本属性、权限、资源、代码结构等。本文将详细探讨如何使用好用的APK信息提取工具来获取这些关键信息。 首先,我们...

    PHP 读取 Android APK XML文件,无需JDK

    1. **打开APK文件**:使用`new ZipArchive()`创建一个ZipArchive对象,然后调用`open()`方法打开APK文件。由于APK本质上就是一个ZIP压缩文件,所以这个操作是可行的。 ```php $zip = new ZipArchive(); if ($zip...

    APK解析(版本、包名、导出资源图片、证书相关信息、签名认证、权限、Activity等)

    获取apk证书中的第一条的详情: java -jar ApkAnalysis.jar “apk路径” -certs 0 获取证书摘要(百度、高德地图等API中需要的那个SHA1): java -jar ApkAnalysis.jar “apk路径” -certs 0 SHA1 获取apk发布者信息...

    纯java读取Apk信息,贡献全源码,可读取程序.apk中的AndroidManifest.xml所有信息

    2. **获取AndroidManifest.xml**:调用`ZipFile`的`getEntry()`方法,传入"AndroidManifest.xml"作为参数,获取到一个`ZipEntry`对象,代表AndroidManifest.xml在ZIP包中的位置。 3. **读取XML内容**:创建一个`...

    ApkHelper&aapt.zip

    ApkHelper是一个Java库,专为Android开发者设计,用于帮助他们方便地解析和操作APK文件。它提供了许多功能,例如提取APK中的资源、读取AndroidManifest.xml文件、获取应用图标、检查权限等。通过使用ApkHelper,...

Global site tag (gtag.js) - Google Analytics