以下为TestIntentData工程
MainActivity如下:
package cn.testintentdata;
import java.util.List;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
/**
* Demo描述:
* 应用中依据包名启动另外一个APP
*
*/
public class MainActivity extends Activity {
private Button mButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private void init(){
mButton=(Button) findViewById(R.id.button);
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
startAnotherApp("cc.testintent");
}
});
}
private void startAnotherApp(String packageName){
PackageInfo packageInfo = null;
try {
packageInfo = getPackageManager().getPackageInfo(packageName, 0);
if (packageInfo==null) {
System.out.println("packageInfo==null");
} else {
System.out.println("packageInfo!=null");
}
} catch (NameNotFoundException e) {
e.printStackTrace();
}
//<data android:scheme="app" android:host="jp.co.cybird.barcodefootballer/" />
Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
resolveIntent.setData(Uri.parse("app://jp.co.cybird.barcodefootballer/"));
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
resolveIntent.setPackage(packageInfo.packageName);
System.out.println("packageInfo.packageName="+packageInfo.packageName);
List<ResolveInfo> resolveInfoList =
getPackageManager().queryIntentActivities(resolveIntent, 0);
System.out.println("resolveInfoList.size()="+resolveInfoList.size());
ResolveInfo resolveInfo = resolveInfoList.iterator().next();
if (resolveInfo != null ) {
String activityPackageName = resolveInfo.activityInfo.packageName;
String className = resolveInfo.activityInfo.name;
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentName componentName = new ComponentName(activityPackageName, className);
intent.setComponent(componentName);
startActivity(intent);
}
}
}
main.xml如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="click me"
android:layout_centerInParent="true"
/>
</RelativeLayout>
以下为TestIntent工程
MainActivity如下:
package cc.testintent;
import android.os.Bundle;
import android.app.Activity;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
main.xml如下:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="大 家 好"
android:layout_centerInParent="true"
/>
</RelativeLayout>
AndroidManifest.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cc.testintent"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="8" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="cc.testintent.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<data android:scheme="app"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
分享到:
相关推荐
- Web App Manifest:这是一个JSON文件,用于提供关于Web应用的信息,如应用名称、图标和启动屏幕显示。通过检查浏览器是否支持Web App Manifest API,可以初步判断是否支持与APP的交互。 2. **使用`navigator....
7. **上传和发布到应用市场**:最后,将生成的APK和IPA文件上传至Google Play Store(Android)和App Store(iOS),经过审核后,用户就能在各自的市场上搜索并下载APP。 二、方案关键点说明 1. **打包技术**:此...
在Android启动的初始阶段,内核加载并初始化所有必要的设备驱动和数据结构后,会启动一个用户级进程——`init`。`init`是Android系统中首个启动的进程,扮演着系统引导的重要角色。`init`进程依据`init.rc`和特定于...
在Android开发中,UI设计是至关重要的一个环节,而图标作为用户界面的重要组成部分,能够直观地传达功能信息,提升用户体验。本资源包“Android手机app百度浏览器所有小图标素材”正是针对这一需求,提供了用于...
在本项目中,我们关注的是一个基于Android平台的开源中国应用程序的最新版本客户端。这个源码库是一个典型的Android应用开发示例,非常适合那些正在进行毕业设计或希望深入理解Android开发的学生和开发者。通过分析...
本项目是一个Android应用源码示例,它展示了如何将这两部分集成到一个应用程序中。 首先,让我们来探讨"闪屏页"。闪屏页通常作为应用启动时的第一个界面,展示品牌标识、加载应用资源或执行初始化操作。在Android中...
iOS和Android作为两大主流移动操作平台,它们各自有着一套界面设计规范。设计师在设计移动应用时,需要遵循这些规范...对于刚入行的互联网产品设计师和开发人员来说,这些规范是设计iOS和Android应用时的重要参考依据。
在Android应用开发领域,SampleSyncAdapter是一个重要的学习资源,尤其对于毕业设计的学生来说,它提供了一个实践和理解Android同步适配器(Sync Adapter)机制的实例。本文将深入探讨SampleSyncAdapter的核心功能、...
本篇将详细介绍基于Android Studio实现的聚合支付SDK,该SDK已经对微信、支付宝、银联这三大主流移动支付平台的APP支付进行了二次封装,使得开发者只需要对接一个简单的接口,就能实现多渠道支付功能。 一、聚合...
在Android应用开发中,"MyActivity"通常是一个基础的自定义活动类,是开发者为了实现特定功能而创建的。这份名为"MyActivity-IT计算机-毕业设计.zip"的压缩包资源,很显然是一份针对Android应用的毕业设计项目,旨在...
在Android平台上,应用程序之间的通信(Application-to-Application Communication,简称A2AC)是开发者经常会遇到的一个重要主题。这个主题涉及到如何让不同的应用之间共享数据、启动服务、发送广播以及使用内容...
Android应用程序开发是一个复杂的过程,涉及到多个方面的知识点。下面是基于毕业论文“玩转英语App”的知识点总结。 一、Android平台介绍 * Android是一款开源的移动操作系统,由Google公司开发和维护。 * Android...
总之,移动App性能评测与优化是一个持续的过程,需要开发者对平台特性有深入理解,结合具体测试数据进行分析,不断迭代优化。腾讯TMQ团队的经验分享将为开发者提供宝贵的指导,帮助我们创建更高效、更稳定的Android...
在进行Android应用开发时,图片轮播器是一个常见的组件,常见于应用的启动界面、产品展示或者作为用户界面的一部分。 首先,我们需要理解Android开发的基础。Android是Google开发的一个开源操作系统,主要应用于...
1. **LitePal**: 作为一款轻量级的数据持久化框架,LitePal 在 Android 开发中被广泛应用于本地数据存储。本项目利用 LitePal 来管理应用程序中的天气数据,包括历史记录、用户偏好设置等。 2. **Linux 内核层、...
在Android应用开发中,任务管理器是一个至关重要的组件,它帮助开发者有效地管理和监控应用程序的运行状态,优化资源的使用,并确保应用的流畅性和稳定性。这个"Android应用源码任务管理器源码"是一个用于毕业设计...
嵌入式Linux与Android开发是当今IT领域中的热门方向,尤其在物联网(IoT)、智能家居、自动驾驶等应用场景中有着广泛的应用。韦东山老师的"嵌入式Linux应用开发完全手册"是许多初学者和进阶者的学习宝典。本文将依据...
1. **多窗口支持**:Android 7.1.1引入了多窗口模式,允许两个应用同时显示在屏幕上。源码中的`frameworks/base/services/core/java/com/android/server/wm/`目录下包含了与此功能相关的代码,如`MultiWindowPolicy`...
虽然现在Kotlin已经逐渐成为官方推荐的首选语言,但Java在许多项目中仍然广泛使用,尤其对于初学者,Java是一个很好的起点。 【Android Studio项目结构】 一个典型的Android Studio项目包含以下几个关键文件和目录...