㈠ android 应用调用另外一个应用的activity
这个首先你要知道app2的activity的名字才行。你知道了就简单了,不知道的话,只能通过log一个个的看。比如app2中有个activity的名字为MyActivity,完整的包名是com.example.app2.MyActivity.那么你从app1跳过去可以这样跳:
Intent in = new Intent();
in.setClassName("com.example.app2", "com.example.app2.MyActivity");
mContext.startActivity(in);
㈡ android中一个应用程序如何调用到另一个另一程序的activity
生成一个要被调用的APK。在其Manifest.xml设置中,与一般的写法大致相同,唯一区别的地方在于-->安装这个要被调用的APK。安装完毕之后,你会发现,系统中找不到这个程序。别急,它确实安装在手机里面了,但是因为他不是main的,所以系统不会把他当做Application的入口程序。而要想打开这个activity,只有知道它名字的人才可以。跟系统的intent一样使用。它的名字定义为"testApp",所以,这里用这个字符串就可以调用它了在另一个项目中调用上述APK。代码如下java">Intentintent=newIntent("testApp");startActivity(intent);启动另外一个apkjava">IntentmIntent=newIntent();ComponentNamecomp=newComponentName(packageName,activityName);mIntent.setComponent(comp);mIntent.setAction("android.intent.action.VIEW");startActivity(mIntent);
㈢ Android 调用其他应用打开文件
/**
*打开文件
*@paramfile
*/
privatevoidopenFile(Filefile){
Intentintent=newIntent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//设置intent的Action属性
intent.setAction(Intent.ACTION_VIEW);
//获取文件file的MIME类型
Stringtype=getMIMEType(file);
//设置intent的data和Type属性。
intent.setDataAndType(/*uri*/Uri.fromFile(file),type);
//跳转
startActivity(intent);
}
/**
*根据文件后缀名获得对应的MIME类型。
*@paramfile
*/
privateStringgetMIMEType(Filefile){
Stringtype="*/*";
StringfName=file.getName();
//获取后缀名前的分隔符"."在fName中的位置。
intdotIndex=fName.lastIndexOf(".");
if(dotIndex<0){
returntype;
}
/*获取文件的后缀名*/
Stringend=fName.substring(dotIndex,fName.length()).toLowerCase();
if(end=="")returntype;
//在MIME和文件类型的匹配表中找到对应的MIME类型。
for(inti=0;i<MIME_MapTable.length;i++){//MIME_MapTable??在这里你一定有疑问,这个MIME_MapTable是什么?
if(end.equals(MIME_MapTable[i][0]))
type=MIME_MapTable[i][1];
}
returntype;
}具体的看这篇文章http://tonysun3544.iteye.com/blog/1265884
㈣ android两个应用程序之间的通信和调用
你是说两个应用之间还是单个应用的进程之间?
应用程序之间共享数据其实可以使用shareperference 或者 sqlite就行 只是实时操作而已 系统资源消耗比较大。
如果是线程间通信可以使用类似handler和runable传参数。
如果是进程间通信的话可以使用远程服务,AIDL作为中间接口,一个服务端一个客户端数据就可以交互。
㈤ Android开发 我想让应用程序可以在别的应用调用浏览器的时候调用它,请问应该怎么做
如果想要对方应用点击链接后直接调用你的浏览器打开,那是无法实现的(除非只装了你这一个浏览器)。
首先你应该了解,android中打开activity或者service是通过发送intent去执行的,而intent又有隐性和显性之分。
只有对方应用创建的是显性intent并指定了你开发的浏览器,那么才会直接以你的浏览器打开网页,
但这个intent是由发送方决定的,你作为浏览器的开发者是无可奈何的。
你能做的只是开发一个broadcastReceiver(广播接收器),告诉系统你是一个浏览器,
那么当用户用隐式intent去打开浏览器时,你就会作为一个备选浏览器供用户选择。
㈥ Android怎样在应用中启动另一个应用并放在后台运行
启动另一个应用:
Intent intent = new Intent();
intent.setClassName("目标应用的包名", "目标应用的目标Activity");
startActivity(intent);
后台运行就只能启动目标应用的Service,即目标应用的目标Activity是一个Service。
㈦ 如何通过android的应用程序调用另一个应用
如果你知道另外一个程序的类名就可以这样写
intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentNamecn=newComponentName(packageName,className);
intent.setComponent(cn);
startActivity(intent);
2.如果你只知道包名不知道类名,首先获取类名
privatevoidopenApp(StringpackageName){
PackageInfopi=getPackageManager().getPackageInfo(packageName,0);
IntentresolveIntent=newIntent(Intent.ACTION_MAIN,null);
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
resolveIntent.setPackage(pi.packageName);
List<ResolveInfo>apps=pm.queryIntentActivities(resolveIntent,0);
ResolveInfori=apps.iterator().next();
if(ri!=null){
StringpackageName=ri.activityInfo.packageName;
StringclassName=ri.activityInfo.name;
Intentintent=newIntent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentNamecn=newComponentName(packageName,className);
intent.setComponent(cn);
startActivity(intent);
}
}
然后使用1中的方法调用程序
㈧ 如何在一个android应用里面调用一个系统的应用程序呢
//调用系统照相机
public void cameraInfo(){
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
//照片保存的路径及保存的名称
intent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(new File("/sdcard/JetMobileDev/camera.jpg"));
startActivityForResult(intent, 1);
}
㈨ Android如何实现不同应用之间的调用
使用ComponentName()可以跳转到任何一个activity,不论是不是main activity。也不必写修改被调用的apk的AndroidManifest.xml任何内容,如下:
packagecom.hooy.apk1;
importandroid.app.Activity;
importandroid.content.ComponentName;
importandroid.content.Intent;
importandroid.os.Bundle;
importandroid.view.MotionEvent;
{
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
publicbooleanonTouchEvent(MotionEventevent){
ComponentNamecomponetName=newComponentName(
//这个是另外一个应用程序的包名
"com.hooy.apk2",
//这个参数是要启动的Activity
"com.hooy.apk2.Pay_Activity");
//Intentintent=newIntent("chroya.foo");
Intentintent=newIntent();
//我们给他添加一个参数表示从apk1传过去的
Bundlebundle=newBundle();
bundle.putString("arge1","这是跳转过来的!来自apk1");
intent.putExtras(bundle);
intent.setComponent(componetName);
startActivity(intent);
returnsuper.onTouchEvent(event);
}
}
ComponentName的参数已经写的比较详细了
packagecom.hooy.apk2;
importandroid.app.Activity;
importandroid.content.Intent;
importandroid.os.Bundle;
importandroid.widget.TextView;
publicclassPay_ActivityextendsActivity{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//改变文字内容,标志这是从activity跳转过来的
TextViewtexView=(TextView)findViewById(R.id.text1);
texView.setText("我来自其他activity");
Intentintent=getIntent();
Stringvalue=intent.getStringExtra("arge1");
if(value!=null&&!value.equals("")){
texView.setText(value);//这里将显示“这是跳转过来的!来自apk1”
}else{
System.out.println("空的参数");
}
}
}
㈩ android Intent启动其它应用
可以带别的东西。
需要com.rarlab.rar.MainActivity类的支持。
com.rarlab.rar.MainActivity可以在onCreate中通过getIntent来得到
传入来的intent.
intent可以设置一些数据,比如Intent.putExtra("type","rar")
然后onCreate得到后,可以Intent.getStringExtra("type")