HarmonyOS鸿蒙Next中flutter无法获取华为应用列表

HarmonyOS鸿蒙Next中flutter无法获取华为应用列表 在AndroidManifest.xml文件中添加以下权限:

<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>

调用device_app包来读取手机上已安装的应用列表,结果是空的。

问题:华为手机会对获取已安装应用列表的权限进行限制了吗?

2 回复

华为商城的不会限制非华为商城下载的软件会被限制,

更多关于HarmonyOS鸿蒙Next中flutter无法获取华为应用列表的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在HarmonyOS鸿蒙Next中,Flutter无法直接获取华为应用列表,主要是因为系统权限限制和API访问权限问题。要解决这个问题,可以通过以下步骤:

  1. 申请权限:确保在AndroidManifest.xml中申请了QUERY_ALL_PACKAGES权限。
  2. 使用原生代码:通过Flutter的MethodChannel调用原生Android代码,使用PackageManager获取应用列表。
  3. 适配鸿蒙API:如果鸿蒙系统有特定的API,需要调用鸿蒙的API来获取应用列表。

示例代码:

import 'package:flutter/services.dart';

class AppListService {
  static const platform = MethodChannel('com.example.applist');

  Future<List<String>> getAppList() async {
    try {
      final List<dynamic> result = await platform.invokeMethod('getAppList');
      return result.cast<String>();
    } on PlatformException catch (e) {
      print("Failed to get app list: '${e.message}'.");
      return [];
    }
  }
}

在原生Android代码中实现getAppList方法,使用PackageManager获取应用列表并返回给Flutter。

回到顶部