在一个apk中调用另外一个apk中的activity
jopen
10年前
一、生成一个要被调用的APK。在其Manifest.xml设置中,与一般的写法大致相同,唯一区别的地方在于,如下:
<activity android:name="com.example.test.TestActivity" android:label="@string/app_name" > <!--<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> --> <intent-filter > <action android:name="testApp"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity>
二、安装这个要被调用的APK。
安装完毕之后,你会发现,系统中找不到这个程序。别急,它确实安装在手机里面了,但是因为他不是main的,所以系统不会把他当做Application的入口程序。而要想打开这个activity,只有知道它名字的人才可以。跟系统的intent一样使用。它的名字定义为"testApp",所以,这里用这个字符串就可以调用它了:
三、在另一个项目中调用上述APK。代码如下:
Intent intent = new Intent("testApp"); startActivity(intent);
四、启动另外一个apk
Intent mIntent = new Intent( ); ComponentName comp = new ComponentName(packageName, activityName); mIntent.setComponent(comp); mIntent.setAction("android.intent.action.VIEW"); startActivity(mIntent);