android跳转activity,Android跳转失败

Android 跳转至第三方应用指定的Activity

方法一:知道第三方应用的报名和需要跳转的Activity名

在丰镇等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、成都网站建设 网站设计制作按需设计,公司网站建设,企业网站建设,成都品牌网站建设,成都营销网站建设,成都外贸网站建设,丰镇网站建设费用合理。

Intent redIntent=new Intent();

redIntent.setClassName("com.example.ht380d4G_jar_demo", "com.meter.MeterActivity");

方法二:不使用Activity名,用action

Intent redIntent=new Intent();

redIntent.setAction("com.jb.MeterActivity");

redIntent.addCategory("android.intent.category.DEFAULT");

redIntent.setPackage("com.example.ht380d4G_jar_demo");

android 两个app之间的activity怎么跳转

android中intent实现两个不同应用Activity跳转,可以用以下的方法: 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用。一般我们知道了另一个应用的包名和MainActivit y的名字之后便可以直接通过如下代码来启动: [java] view plaincopy Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); ComponentName cn = new ComponentName(packageName, className); intent.setComponent(cn); startActivity(intent);但是更多的时候,我们一般都不知道目标应用程序的启动Activity的类名,而只知道包名,接下来就需要这么做了,我封装成了一个方法,如下所示:[java] view plaincopy private void doStartApplicationWithPackageName(String packagename) {// 通过包名获取此APP详细信息,包括Activities、services、versioncode、name等等 PackageInfo packageinfo = null; try { packageinfo = getPackageManager().getPackageInfo(packagename, 0); } catch (NameNotFoundException e) { e.printStackTrace(); } if (packageinfo == null) { return; }// 创建一个类别为CATEGORY_LAUNCHER的该包名的Intent Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null); resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER); resolveIntent.setPackage(packageinfo.packageName);// 通过getPackageManager()的queryIntentActivities方法遍历 ListResolveInfo resolveinfoList = getPackageManager() .queryIntentActivities(resolveIntent, 0);ResolveInfo resolveinfo = resolveinfoList.iterator().next(); if (resolveinfo != null) { // packagename = 参数packname String packageName = resolveinfo.activityInfo.packageName; // 这个就是我们要找的该APP的LAUNCHER的Activity[组织形式:packagename.mainActivityname] String className = resolveinfo.activityInfo.name; // LAUNCHER Intent Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER);// 设置ComponentName参数1:packagename参数2:MainActivity路径 ComponentName cn = new ComponentName(packageName, className);intent.setComponent(cn); startActivity(intent); } }

【Android】显式/隐式Intent意图跳转Activity总结

1.隐式跳转之Action

activity

android:name=".ScrollingActivity"

android:label="@string/app_name"

android:theme="@style/AppTheme.NoActionBar"

intent-filter

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

action android:name="open_destination"/

categoryandroid:name="android.intent.category.LAUNCHER"/

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

/intent-filter

/activity

一定要加上 category android:name="android.intent.category.DEFAULT" /,不然会爆错:android.content.ActivityNotFoundException: No Activity found to handle Intent { act=open_destination }

2.URI跳转:

需要注意的是: action android:name="android.intent.action.VIEW" / 必须要加上,否则跳不过去,同时注意host和scheme不要写反了:

原文链接:

原文链接:

Android系统路由之-scheme实现网页链接携带参数跳转到Activity

Scheme这个词语我们可以在Uri使用时见到,有 uri.getScheme() 方法。在android中scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;通过scheme协议,服务器可以定制化告诉App跳转那个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等。

我们来看看谷歌官方对其data描述:见

还有其filter的描述:

以上两个网址我在关掉代理的情况下上不了,讲的很清晰,我只能搬过来了。

翻译过来就是, data 是写在 intent-filter 中的,格式可以是数据的类型,或者是一个URI。其格式最终为 scheme://host:port[path|pathPrefix|pathPattern]

这些属性是可选的,但是也有一些是有依赖关系的,比如如果没有设置 scheme ,则其他的URI属性将被忽略,又或是如果 host 没有被设置,那么 port 属性不生效。

通过manifest,应用向系统注册一个URL scheme,该scheme 用于从浏览器或其他应用中启动本应用。通过指定的 URL 字段,可以让应用在被调起后直接打开某些特定页面,比如商品详情页、活动详情页等等。也可以执行某些指定动作,如完成支付等。也可以在应用内通过 html 页来直接调用显示 app 内的某个页面。

我们最常见的应用场景就是别人分享的一个购物优惠,点开后直接进去了京东的客户端或者是淘宝的客户端。

我们设置了上面的 intent-filter / 后,其实就可以通过下面的链接打开我们的activity了。

点击后,若手机安装了我们应用便会直接打开。

也可以原生调用:

通过 Intent ,我们能够拿到跳转的参数,便可以进行应用内的业务处理了。

通过scheme跳转是一个很好的方式,不过后来谷歌2015年的I/O大会上提出了一个新方案 Android M 的"App Links"实现详解 ,感兴趣的可以看看。

好了安卓系统自带的就这么简单的集成,不过这种的缺点是,一个Activity要写一个,如果入口多了,要写很多个,工程大了难以管理。下一章将讲解应用内的路由 Arouter

当前名称:android跳转activity,Android跳转失败
转载来于:https://www.cdcxhl.com/article8/dsceoip.html

成都网站建设公司_创新互联,为您提供面包屑导航营销型网站建设网站排名静态网站品牌网站建设App设计

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设