我们在 .NET Core 中遇到 Android Enterprise API 问题。我们面临的问题是,当调用管理API或企业API来检索我们添加的私有应用程序的信息时,它不会返回特定的权限
"android.permission.PACKAGE_USAGE_STATS."
但是,其他特殊权限例如
“android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS”出现在列表中。
这就是我们调用 API 来获取应用程序信息的方式:
await _androidEnterpriseService.Products.Get(enterprise, "app:" + packageName).ExecuteAsync()
我们也在使用 Android Management API,但仍未获得该权限。
using (AndroidManagementService androidService = manager.GetAndroidService())
{
return await _androidService.Enterprises.Applications.Get($"enterprises/{enterprise}/applications/{packageName}").ExecuteAsync();
}
我们已在 Android 应用程序的清单文件中添加了权限。
Nuget 版本:
Google.Apis.AndroidEnterprise.v1 1.45.0.1910
Google.Apis.AndroidManagement.v1 1.58.0.2881
android.permission.PACKAGE_USAGE_STATS
权限有关,与 android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
相比,该权限具有更复杂的保护级别,并定义为签名|特权|开发|appop|retailDemo,这是一个正常权限,权限级别定义为正常。
要确定您的应用是否符合此权限,您需要查看保护级别文档此处。
您的应用程序可能未正确处理或识别特殊权限,这可以解释为什么您在调用 Google Play EMM API 的 Products.get 或 Android Management API 的 Applications.Get 时没有看到它返回。该问题可能源于应用程序由于未达到所需的保护级别而无法识别权限。