- 浏览: 600374 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (154)
- java (31)
- Struts (3)
- Hibernate (8)
- Spring (6)
- JS (14)
- DWR (1)
- Oracle (1)
- SQL Server (0)
- JSF (0)
- JPA (0)
- Grails (3)
- Ajax (1)
- Extjs (0)
- jQuery (4)
- MySQL (2)
- 正则表达式 (2)
- 其他 (6)
- 计算机应用 (7)
- Groovy (8)
- Google (1)
- Web (2)
- MongoDB Java Driver (1)
- mongodb (1)
- Linux (3)
- HTML (1)
- Tomcat (3)
- Eclipse (2)
- JSP (1)
- 缓存 (1)
- 动态 (1)
- 问题与解决 (3)
- HY (1)
- Android (35)
- LBS (1)
最新评论
-
u012136165:
list 方法:纠正:[2,5].add(1,9) ...
Groovy的list和map -
bruce.yuan:
误人子弟的文章。已经看到N个人转了这个帖子,这要贻害多少新人啊 ...
理解并解决GBK转UTF-8奇数中文乱码 -
思念-悲伤:
特意登录上来,感谢下!
理解String的compareTo()方法返回值 -
bo_hai:
总结的好,有效。
理解String的compareTo()方法返回值 -
u012678420:
在onCreate方法中获取某个View的宽度和高度
Android中有Context的概念,有了Context就可以做很多事情,如打开activity、发送广播、打开文件夹和数据库、获取
classLoader、获取资源等等。
那么能获取到手机上其他应用的Context吗?
能!有了其他应用的Context,几乎就可以做其他应用能做的任何事。
示例:
下面这个类是手机上的某个应用
package com.example; import android.app.Activity; import android.util.Log; public class InvokedActivity extends Activity { public void print(String msg) { Log.i("IA", msg); } }
下面代码是我的应用,去调用上面那个类的print方法
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:id="@+id/invoke" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="调用其它应用方法" /> </LinearLayout>
package com.invoke; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Toast; public class TestActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findViewById(R.id.invoke).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { invokeOtherPackage(); } }); } private void invokeOtherPackage() { try { /* CONTEXT_INCLUDE_CODE: 包含代码,可以执行此包中的代码。 CONTEXT_IGNORE_SECURITY: 忽略安全警告,不加有此功能不能用,会得到安全警告。 */ Context otherPackageContext = this.createPackageContext("com.example", Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY); if (otherPackageContext != null) { //载入类 Class clazz = otherPackageContext.getClassLoader().loadClass("com.example.InvokedActivity"); if (clazz != null) { //创建实例 Object obj = clazz.newInstance(); //获取并执行print方法 clazz.getMethod("print", String.class).invoke(obj, "Ask in TestActivity"); } else { showMessage("没有获取到类"); } } else { showMessage("没有获取到其它包上下文"); } } catch (Exception e) { e.printStackTrace(); } } private void showMessage(String message) { Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); } }
当点击按钮时,会调用其他应用的方法(InvokedActivity的print方法),该方法输入如下

可能你在想,是不是只有当两个应用是同一个keystore签名才可以相互调用?当不同keystore签名就不能相互调用?
错,不同keystore签名一样可以调用,这个我测试过了。
不要使用此功能来破坏其他应用,厚道点为好。
发表评论
-
深入分析AIDL原理
2011-11-13 16:14 25450在上一篇文章(Service使用方式)中,介绍了Android ... -
Service使用方式
2011-11-13 15:23 6079使用Service的场合: ... -
在onCreate方法中获取某个View的宽度和高度
2011-10-08 14:54 14516有时候需要在onCreate方法中知道某个View组件的宽度和 ... -
不加载图片,仅仅获取图片文件分辨率
2011-10-08 11:09 4010当从SD卡中获取图片时,如果图片太大,加载会出现溢出异常。因此 ... -
图片移动和缩放
2011-09-29 22:15 2159import android.graphics.Matr ... -
定时任务
2011-09-28 00:53 1540定时任务有执行一次和重复执行两种 public cla ... -
几种创建LayoutInflater对象的方法
2011-09-28 00:51 1913LayoutInflater layoutInflate ... -
判断网络类型及是否有网络
2011-09-28 00:49 2815判断当前是否有可用网络 public boolean ... -
设置全屏
2011-09-26 23:40 19491.编程方式 public void setFullS ... -
dip与px单位之间转换
2011-09-25 10:11 1665//转换dip为px public static in ... -
屏幕尺寸(高、宽)
2011-09-25 10:11 1925Display display = getWindowM ... -
判断手机外存(SD卡)状态
2011-09-25 10:07 2181public int getExternalStorag ... -
SQLite数据类型
2011-09-25 10:03 9376一般数据采用的固 ... -
使用WebView实现腾讯微博OAuth登录
2011-09-24 21:11 4907接着上一篇文章"使用WebView实现新浪微博OAu ... -
使用WebView实现新浪微博OAuth登录
2011-09-20 12:18 8527#新浪官方下载SDK(weibo4android) h ... -
高效率下载图片——防止内存溢出
2011-09-18 13:09 2252在应用中经常需要下载很多的图片,因此,写好图片下载部分的代码非 ... -
PopupWindow使用
2011-09-16 14:05 1854使用PopupWindow来显示一个浮层 点击按钮后弹出 ... -
Android通知
2011-09-07 17:56 1946private void showNotification() ... -
AlarmManager.RTC和ELAPSED_REALTIME的区别
2011-09-04 17:33 30084AlarmManager.RTC,硬件闹钟,不唤醒手机( ... -
开机自启动
2011-09-04 13:55 1666经常会有这样的需求,当手机开机后立刻启动一个服务或者一个活动。 ...
相关推荐
在C#编程中,调用其他应用程序是一项常见的任务,这涉及到进程管理和权限控制。下面将详细探讨这个主题,包括如何在C#中启动其他应用程序、处理不同级别的用户权限,以及与管理员权限相关的操作。 首先,让我们看看...
使用RUN命令调用应用程序 最直接的方法是使用`RUN`命令。它允许开发者直接运行指定路径下的应用程序。例如,启动Windows目录下的图画板程序并打开特定的图片文件: ```vfp RUN/n3 C:\Windows\Pbrush.exe c:\...
在IT领域,"Web调用本地应用程序"是一个重要的技术主题,尤其在构建混合式应用时。这个主题涉及到如何从Web应用程序中启动、控制或者与用户的本地应用程序进行交互。以下是对这个主题的详细解释: 首先,我们要理解...
服务器接收到请求后,调用预设的本地exe,可能是通过`System.Diagnostics.Process`类(在.NET中)或其他类似机制。 4. 应用程序exe执行所需任务并可能产生一些输出。 5. 服务器收集exe的输出,然后将其回传给Web...
### jap调用应用程序 #### 一、引言 在现代软件开发中,特别是在Web应用领域,JSP(Java Server Pages)技术被广泛应用于构建动态网页。然而,在某些情况下,Java程序可能需要与其他非Java应用程序进行交互,以...
这在应用A需要调用应用B的功能时非常有用。 1. **URL Scheme的注册**:在`Info.plist`文件中,你需要添加一个`CFBundleURLTypes`键,其值是一个数组,包含一个字典。字典中`CFBundleURLSchemes`键的值是你的自定义...
总结,C#窗体嵌入调用应用程序主要涉及`Process`类和`ProcessStartInfo`对象的使用,通过它们可以实现对外部.exe程序的启动、控制和通信。在实际开发中,要确保对可能出现的异常进行妥善处理,并根据需求调整进程的...
在C#编程中,跨应用程序调用是一种常见的需求,它允许一个程序启动、控制或通信与其他已安装在系统上的程序。这种技术对于实现系统集成、自动化任务或是扩展应用程序功能非常有用。本文将深入探讨如何使用C#进行跨...
`lpFile`参数是我们要启动的应用程序的路径,其他参数可以用来指定命令行参数、工作目录以及显示模式。 通过这个实例,初学者不仅能学会如何在PowerBuilder中调用Windows应用程序,还能了解到如何与Windows API进行...
调用应用程序,简单来说,就是启动或激活这些程序来完成我们想要的操作。 调用应用程序的方式有很多种,下面列举几种常见的方法: 1. **桌面快捷方式**:大多数操作系统允许用户创建应用程序的快捷方式,双击快捷...
你需要构造一个包含被调用应用URL Scheme的URL,并传递给`openURL:`方法。 4. **传递参数**:如果需要在调用时传递数据,这些数据可以编码到URL的查询字符串中。例如,`appa://open?param1=value1¶m2=value2`。...
本文将深入探讨如何在iOS应用中实现对其他程序的调用,以及系统程序的交互。 首先,我们需要理解什么是URL Scheme。URL Scheme是一种规范,它定义了如何通过URL来启动特定的应用程序。每个应用程序都可以注册自己的...
1.6 获取应用素材总数以及每种类型素材的数目 1.7 创建菜单 1.8 删除菜单 1.9 获取菜单列表 2、微信公众号服务端调用方法java源码实现 2.1 在回调模式下验证服务器接口地址 2.2 检验消息的真实性,并且获取解密后的...
AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正AIR2.0 调用应用程序 修正 ...
本模块主要关注的是API调用对话框的应用。 对话框在编程中扮演着重要的角色,它是用户与程序交互的窗口,通常用于显示警告、获取用户输入或执行特定操作。API调用对话框则是利用系统级的函数来创建和管理这些对话框...
使用labview2013中文版编辑,调用shell中的ShellExecute实现打开外部应用程序,VI有详细说明,参数如下: int32_t ShellExecuteA(int32_t hwnd, int32_t lpOperation, CStr paramenters, CStr 参数4, CStr directory...
本文主要介绍一种现在主流的处理方法,即利用自定义 URL Protocol 来调用应用程序。这种方法可以在 web 上调用 java 打包之后的 jar 应用程序,或者调用 exe 应用程序。 主要实现步骤如下: 1. 添加自定义 URL ...
为了防止应用未安装的情况,我们通常会先检查应用是否已安装,未安装时可以跳转到Google Play或其他应用商店下载页面。 ```javascript function openApp() { if (isAppInstalled()) { appBridge.openApp(); } ...
VHDL语言中的元件调用方法应用 在VHDL语言中,元件调用是指在电路设计中使用已经定义的电路模块(实体),以便在设计中重复使用这些模块,提高设计效率和可读性。元件调用方法可以分为两大类:组件调用和实例调用。...
C# DLL是.NET框架中的一个可重用组件,它包含一组方法和属性,可供其他应用程序使用。创建C# DLL需要遵循以下步骤: 1. **创建C#类库项目**:在Visual Studio中,选择新建项目,然后选择"类库(C#)"模板。这将创建一...