0

参考下面链接的答案。

Android:调用另一个应用程序的活动

我试过了firstTabSpec.setIndicator("Second Tab Name").setContent(new Intent("com.company.package.FOO"));

但我得到了一个

java.lang.SecurityException:请求来自 com.company.package(uid 10036)的代码在进程 com.example.test(uid 10037)中运行

其中 com.example.test 是调用已安装包“com.company.package.FOO”的包

com.company.package 清单

<activity
        android:name="com.company.package.Login"
        android:label="@string/app_name"
        android:windowSoftInputMode="adjustResize|stateVisible" >
        <intent-filter>
            <action android:name="com.company.package.FOO" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

com.example.test 清单

 <activity
        android:name="com.example.test.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

如果您需要更多详细信息,请告诉我。

谢谢 :)

4

2 回答 2

3

出于安全原因,不可能在您自己的应用程序中显示其他应用程序的活动,例如某种 iframe。

但是,您可以正常启动 Activity 并将控制权传递给它。

于 2013-04-02T05:08:01.340 回答
2

您可以发送意图消息以打开另一个应用程序活动,但您不能在选项卡中使用另一个应用程序的活动。充其量你可以做一件事。以某种方式检测您想要显示其他应用程序选项卡的选项卡何时切换,并从那里发送启动该应用程序的意图。通过这样做,您将无法在选项卡中显示该应用程序的活动,但您可以像其他活动一样启动该应用程序。为此,您可以执行以下任何操作

选项1:

在选项卡 A 中说您要启动其他应用程序。在选项卡 A 中设置一个空白布局的活动。并在该活动的 onCreate 方法中启动另一个应用程序。但这里有一个问题。当其他应用程序完成时,将出现一个空白屏幕。在我的情况下,为了解决这个问题,我只是在关闭另一个应用程序时将选项卡切换到主(另一个)选项卡。

选项 2:

您可以使用TabHost.OnTabChangeListener侦听器检测选项卡何时更改。然后你可以做同样的事情。

选项 3:

或者您可以通过检测选项卡按钮单击来做同样的事情。

无论如何,以上 3 个选项都只是同一选项的变体。虽然这不是一个好的解决方案,但我目前看不到任何更好的解决方案。希望它对你有用。谢谢

于 2013-04-02T05:38:16.390 回答