繁体   English   中英

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

[英]How to know about the apps installed on the android device

我正在开发一个基于Web的移动应用程序,在该应用程序中,用户可以选择不同的应用程序,并且在单击安装后,它将打开该应用程序的Google-play-store链接。 用户现在可以从Play商店安装应用程序。 但是,播放室将作为一个单独的窗口打开。

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

我希望一旦安装完成,就可以依次打开Playstore窗口,但是,从移动浏览器(因为它不是apk并使用HTML / Java脚本),很难知道是否在Windows XP上安装了一个应用程序设备(由于安全原因)。 我已经阅读了有关Google购买状态API的信息 但这需要几个字段,例如package-id,product-id,purchase Tokens,才能获取应用程序的购买状态。

有人可以帮我解决上面提到的情况吗? 我可以使用Google购买或Google电子钱包API解决我的问题吗? 如果有人可以为此提出任何其他解决方案,那将是很好的。

提前致谢。

不可以,无法从HTML知道运行Web应用程序的设备上已经安装了哪些APK。

Google购买API适用于应用内购买-它们也不会告诉您用户购买了哪些应用(而且购买的应用无论如何都不等于安装的应用)。

正如Booger的回答所提到的,如果您不使用HTML编写代码,而是编写可安装的应用程序,则可以了解其他已安装的应用程序(并且不需要特定的权限)。

要了解当前设备上已安装了哪些应用程序,可以使用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);

    }
        ....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM