android一个app打开另一个app的指定页面

一个app打开另一个app的指定页面方法 有以下几种

1、通过包名、类名

2、通过intent的 action

3、通过Url

方案1、

ComponentName componentName = new ComponentName("com.example.bi", "com.example.bi.SplashActivity");//这里是 包名  以及 页面类的全称
                Intent intent = new Intent();
                intent.setComponent(componentName);
                intent.putExtra("type", "110");                  intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);1.在Activity上下文之外启动Activity需要给Intent设置FLAG_ACTIVITY_NEW_TASK标志,不然会报异常。 2.加了该标志,如果在同一个应用中进行Activity跳转,不会创建新的Task,只有在不同的应用中跳转才会创建新的Task

方案2、

在目标Activity的配置文件中添加具体的action

<!--ACTION启动配置-->
            <intent-filter>
                <action android:name="com.example.bi" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
Intent intent = new Intent();
                intent.setAction("com.example.bi");
                intent.putExtra("type", "110");                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);

方案3、

<!--URL启动启动配置-->
            <intent-filter>
                <data
                    android:host="com.example.bi"
                    android:path="/cyn"
                    android:scheme="csd" />
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
            </intent-filter>
Intent intent = new Intent();
                intent.setData(Uri.parse("csd://com.example.bi/cyn?type=110"));
                intent.putExtra("", "");//这里Intent当然也可传递参数,但是一般情况下都会放到上面的URL中进行传递                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);

判断要打开的app是否安装:

public static boolean isApkInstalled(Context context, String packageName) {
        if (TextUtils.isEmpty(packageName)) {
            return false;
        }
        try {
            ApplicationInfo info = context.getPackageManager().getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES);
            return true;
        } catch (NameNotFoundException e) {
            e.printStackTrace();
            return false;
        }
    }

原文地址:https://www.cnblogs.com/bimingcong/p/10409914.html

时间: 2024-10-09 08:11:58

android一个app打开另一个app的指定页面的相关文章

Android 通过网页打开自己的APP(scheme)

通过用手机的浏览器(内置,第三方都可)访问一个网页,实现点击一个链接启动自己的应用,并传递数据. 首先在Mainifest文件里面对要启动的Activity添加一个过滤器. <activity android:name="com.example.helloworld.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name=

app打开另一个app

try { PackageManager packageManager = getPackageManager(); Intent intent=new Intent(); intent = packageManager.getLaunchIntentForPackage("com.tencent.mm"); startActivity(intent); } catch (Exception e) { e.printStackTrace(); Intent viewIntent = n

Android 通过网络打开自己的APP(scheme)

通过使用手机的浏览器(内部.第三方能够)访问网页,点击一个链接,开始实施自己的应用程序,和传输数据. 第一Mainifest面对文件启动Activity添加过滤器. <activity android:name="com.example.helloworld.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name=&quo

在android程序中打开另一个应用程序

Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用. 一般我们知道了另一个应用的包名和MainActivity的名字之后便可以直接通过如下代码来启动: 1 2 3 4 5 Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER);           ComponentName cn

C#中关闭第一个Form窗口,打开另一个新窗口方法

很多同学问怎么关闭一个FORM打开另一个新Form.这个问题最多的是在做登录验证时,使用第一个登录窗 登录成功后要关闭自己,然后打开新窗显示.没想到这个问题在.Net还成了问题,不过依然有很多方法解决. 典型的 Form1 f = new Form1(); f.Show(); this.Close(); 最后的关闭时把整个程序都关闭了 1隐藏法,原理就是把旧窗口隐藏掉,再打开新窗口. //新建一个NewForm窗口(NewForm是自己定义的Form) NewForm fm=new NewFor

iOS 一个app跳转另一个app并实现通信(如A跳到B并打开B中指定页面)

功能实现:A跳到B并打开B中指定页面 步骤: 1.首先创建两个项目(项目A,项目B),在项目B中的info.plist文件中添加URL Types,如下图所示:其中URL idenifier是项目B的bundle id ,URL Schemes 中添加一个命令前缀,我这里使用“projectB”,这个名字可以自己取,运行一下项目B. 2.在项目A中添加跳转代码 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"pr

android 从APP启动另一个APP

写下如下代码即可 import android.content.ComponentName; //引入 Intent mIntent = new Intent("android.intent.action.MAIN"); ComponentName comp = new ComponentName("你要启动app的包命,如:com.android.app", "你要启动app的首页,如:com.android.app.MainAcrivity"

【如何快速的开发一个完整的iOS直播app】(原理篇)

一.个人见解(直播难与易) 直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频/音频处理,图形处理,视频/音频压缩,CDN分发,即时通讯等技术,每一个技术都够你学几年的. 直播易:已经有各个领域的大牛,封装好了许多牛逼的框架,我们只需要用别人写好的框架,就能快速的搭建一个直播app,也就是传说中的站在大牛肩膀上编程. 二.了解直播 热门直播产品 映客,斗鱼,熊猫,虎牙,花椒等等 直播效果图 直播效果.jpeg 1.一个完整直播ap

【Android开发-8】生命周期,Activity中打开另外一个Activity

前言:生命中有许多人陪伴自己走过一生中的某段旅程,只是有些人只是某阶段出现,有些人却陪伴自己很久.就像小学.中学.高中.大学,那些曾经以为会长久拥有的,当经历过天涯各地地忙碌于生活,或如意,或失意:渐渐地那些画面只剩回忆.天涯各自安命,能在一起的就尽力珍惜吧,不在一起地就衷心地祝福,我们都需要一种姿态生活下去!Android中的Activity的生命中,我们经常需要打开另外一个Activity,即另外一个界面.这个可能出现的时间很短暂,然后又回到主界面.但是这两个Activity都在各自的生命周