从其他应用程序选项卡式活动调用安装应用程序活动?

时间:2013-03-27 07:16:06

标签: android android-intent tabs android-activity intentfilter

参考下面链接的答案。

Android : Call activity of another application

我尝试了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 Manifest

<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 Manifest

 <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>

如果您需要更多详细信息,请与我们联系。

谢谢:)

2 个答案:

答案 0 :(得分:3)

出于安全原因,无法在您自己的应用中显示其他应用的活动,例如各种iframe。

然而,您可以正常启动活动并将控制传递给它。

答案 1 :(得分:2)

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

选项1:

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

选项2:

您可以使用TabHost.OnTabChangeListener侦听器检测更改标签的时间。然后你可以做同样的事情。

选项3:

或者你可以通过检测标签按钮点击来做同样的事情。

无论如何,以上所有3个选项都只是相同选项的变体。虽然这不是一个好的解决方案,但我现在看不到任何更好的解决方案。希望它能为你效劳。感谢