jjzjj

android - RestrictionManager getRestrictions() 始终为空

coder 2023-12-09 原文

我正在尝试使用 MobileIron EMM 为我的应用设置远程配置。我已按照开发人员指南中的说明完成所有操作: 1. 我已经设置 list :

...
        <meta-data
            android:name="android.content.APP_RESTRICTIONS"
            android:resource="@xml/app_restrictions"/>
    </application>

2。我已经描述了限制:

<?xml version="1.0" encoding="utf-8"?>
<restrictions xmlns:android="http://schemas.android.com/apk/res/android">
    <restriction
        android:title="@string/some_title"
        android:key="SOME_KEY"
        android:restrictionType="string"
        android:defaultValue="123"/>
</restrictions>

3。我正在尝试按以下方式接收它:

RestrictionsManager manager = (RestrictionsManager) context.getSystemService(Context.RESTRICTIONS_SERVICE);
        Bundle b = manager.getApplicationRestrictions();
        if(b!=null){
            if(b.containsKey("SOME_KEY")) {
                return b.getString("SOME_KEY");
            }else{
                System.out.println("bundle is not null");
                for (String s: b.keySet()){
                    System.out.println("key in b is : " + s);
                }
                System.out.println(b.isEmpty() + " bundle is empty");
            }
        }else{
            System.out.println("Bundle is null");
        }
        return "";
    }

我总是得到输出:

bundle is not null
true bundle is empty

虽然我已经为限制设置了默认值。为什么我至少没有获得限制的默认值?为什么我永远得不到实际值(在服务器端我已经使用 MobileIron Cloud 及其 AppConnect 配置设置了值)?尝试了几种设备。我错过了什么?请帮忙。我的目标是远程设置应用程序的一些键值。

最佳答案

如果您根本没有收到任何限制,那可能是因为您的应用不是受管理配置文件的一部分。应用限制仅在两种情况下有效……您的设备已使用 EMM 控制台配置(只能在恢复出厂设置后完成)或您的设备具有由 EMM 控制台管理的 Android for Work 配置文件。您实际上不需要在 list 中声明每个限制,这只允许 EMM 在其控制台中提供该信息。

在未配置的设备上测试应用限制的最简单方法是从 Google Play 商店下载测试 DPC 应用。设置它会加密您的设备并安装可用于测试的工作配置文件。您可以使用 DPC 应用模拟应用应用限制、从 list 中读取限制以及 EMM 执行的许多其他操作。您可以使用 adb 或按照开发人员指南告诉 Android Studio 如何在您的工作资料中运行该应用,将您的应用安装到工作资料中。

https://developer.android.com/work/guide.html#testing

关于android - RestrictionManager getRestrictions() 始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40327704/

有关android - RestrictionManager getRestrictions() 始终为空的更多相关文章

随机推荐