Android ComponentName的使用
ComponentName顾名思义是组件的名称,可以启动其他应用的Activity、Service.
ComponentName chatActivity =new ComponentName(param1,param2);param1:Activity、Service所在应用的包名param2:Activity、Service的包名+类名要启用的APP的AndroidManifest.xml部分代码如下:<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.cjx.factorymenu"android:sharedUserId="android.uid.system"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="18"android:targetSdkVersion="21" /><applicationandroid:allowBackup="true"android:hardwareAccelerated="true"android:icon="@drawable/factory_menu"android:label="@string/app_name"android:requiredForAllUsers="true"android:supportsRtl="false"android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" ><activityandroid:name=".FactoryMenuActivity"通过AndroidManifest.xml 编写如下
Intent intent = new Intent();
ComponentName mComponentName = new ComponentName("com.cjx.factorymenu","com.cjx.factorymenu.FactoryMenuActivity");
intent.setComponent(mComponentName);
startActivity(intent);
如果在启用一些APP过程中还想添加一些参数可以这样做
Intent intent = new Intent();
int keyCode=10;
ComponentName mComponentName = new ComponentName("com.cjx.factorymenu","com.cjx.factorymenu.FactoryMenuActivity");
intent.setComponent(mComponentName);
intent.putExtra("keyCode",keyCode);
startActivity(intent);
在启用的app 的activity里获取如下:
public class FactoryMenuActivity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {int keyCode;keyCode = getIntent().getIntExtra("keyCode", -1);Log.d("cjx","keyCode="+keyCode);}