如何了解Android设备上安装的应用程序

时间:2014-05-06 12:26:28

标签: android

我正在开发一个基于网络的移动应用程序,用户可以在其中选择不同的应用程序,点击安装后,它将打开该应用程序的Google Play商店链接。用户现在可以从Play商店安装应用程序。但是,戏剧将作为一个单独的窗口打开。

如果用户选择要安装的多个应用程序,将会打开多个Playstore窗口。

我希望一旦安装完成就一个接一个地打开Playstore窗口,但是,从移动浏览器(因为这不是apk并使用HTML / Java脚本),很难知道一个应用程序是否是安装在设备上(由于安全原因)。我读过Google purchase status APIs。但这需要一些字段,如package-id,product-id,购买代币才能获得应用的购买状态。

任何人都可以帮我解决上面提到的情况吗?我可以使用Google购买或Google电子钱包API来解决我的问题吗?如果有人可以为此建议任何其他解决方案,那就没问题了。

提前致谢。

2 个答案:

答案 0 :(得分:1)

不,从HTML中无法知道运行Web应用程序的设备上安装了哪些apks。

Google购买API适用于应用内购买 - 它们也不会告诉您用户购买了哪些应用(购买的应用不等于已安装的应用)。

正如Booger的回答所提到的,如果你从HTML中删除并编写可安装的应用程序,那么你就可以找到其他安装的应用程序(这不需要特定的权限)。

答案 1 :(得分:0)

要了解当前设备上安装了哪些应用,您可以使用PackageManager查询您的设备并获取此信息。

您可以注册广播,以便在设备上安装应用时由系统通知。

要注册此广播,请在清单中输入以下内容:

<receiver
        android:name="com.yourpackage.service.InstallReceiver"
        android:exported="false" >
        <intent-filter>
            <action android:name="android.intent.action.PACKAGE_ADDED" />

            <data android:scheme="package" />
        </intent-filter>
    </receiver>

然后你将创建一个名为InstallReceiver的类,并在那里有类似的东西:

public class InstallReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(final Context context, final Intent intent) {
        final String packageLink = intent.getData().toString();

            EasyTracker.getInstance().setContext(context);
            final Tracker trackerV2 = EasyTracker.getTracker();
            trackerV2.trackEvent("app_action", "installed", packageLink, null);

    }
        ....