[鸿蒙开发]如何获取系统中是否有安装该应用

我想通过包名去判断手机系统中是否有安装该应用。这是个很实际需要用到的。比如我从APP跳转到其他APP,但是我不能确定是否有装其他APP,如果没装会导致打不开。我查找了社区的资料,没找到解决的

public boolean getApplicationInfo(Context context, String bundleName) {
        IBundleManager bundleManager = context.getBundleManager();
        BundleInfo packageInfo = null;
        String applicationName = "";
        try {
            packageInfo = bundleManager.getBundleInfo(bundleName, 0);
            applicationName = context.getBundleManager().getAbilityLabel(
                    context.getBundleName(), context.getAbilityInfo().getClassName());
            if (packageInfo != null && applicationName != "") {  
                return true;
            }
        } catch (final RemoteException e) {
                return false;
        }
        return false;
    }

 

我想模仿Android的实现,但是获取的packageInfo一直为null,求指导。

包名,安装应用
2021-09-24 16:50:44
浏览
收藏 0
回答 2
已解决
回答 2
按赞同
/
按时间
mb609898e2cfb86
1

可以通过IBundleManager.isApplicationEnabled(packageName)来识别是否安装了此包名的应用。

分享
微博
QQ
微信
回复
2021-09-27 15:16:21
甜甜爱开发

感谢,及时雨啊,尝试了,可以的,代码如下,供搜索的小伙伴参考。

public boolean isAPPInstall(String bundleName) {
        try {
            getBundleManager().isApplicationEnabled(bundleName);
            return true;
        } catch (java.lang.IllegalArgumentException ex) {
            return false;
        }
    }

这样写有没有什么问题呢?功能是可以的

分享
微博
QQ
微信
回复
2021-09-27 15:52:10
相关问题
如何查看应用是否系统应用
1801浏览 • 1回复 待解决
如何判断已安装应用是否可卸载
1921浏览 • 1回复 待解决
如何判断某个应用是否系统应用
2266浏览 • 1回复 待解决
鸿蒙操作系统应用开发之软总线
10944浏览 • 2回复 已解决