您的位置:首页 > 移动开发 > Android开发

Android在自己的程序中调用外部程序

2010-06-28 18:01 459 查看
0

public void invokeCamera() {

Intent mIntent = new Intent();

ComponentName comp = new ComponentName(

"com.android.camera",

"com.android.camera.Camera");

mIntent.setComponent(comp);

mIntent.setAction("android.intent.action.VIEW");

startActivity(mIntent);

}

ComponentName("","")中第一个参数是包名

,第二个参数是启动程序 的类名



====================================

1
.使用自定义Action[recommended]

A程序中调用的代码为:

Intent intent = new Intent();

intent.setAction("com.test.action.PLAYER");

startActivity(intent);

B程序(被调用)中的AndroidManifest.xml中启动Activity的intent-filter:

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<action android:name="com.test.action.PLAYER" />

<category android:name="android.intent.category.DEFAULT" /><!--必须,否则无效-->

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

</intent-filter>

2
.使用包类名

A程序中调用的代码为:

Intent intent = new Intent();

intent.setClassName("com.test", "com.test.Player");

startActivity(intent);

intent.setClassName(arg1,arg2)中的arg1是被调用程序B的包名,arg2是B程序中目的activity的完整类名。

又或者:

Intent intent = new Intent();

ComponentName comp = new ComponentName("com.test", "com.test.Player" );

intent.setComponent(comp);

startActivity(intent);

B程序(被调用)中的AndroidManifest.xml中启动Activity的intent-filter不需要特别加入其它信息,如下即可:

<intent-filter>

<action android:name="android.intent.action.MAIN" />

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

</intent-filter>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: