我正在尝试在Android应用上实施政策,而我的应用无法理解该政策。 我写了一个简单的代码,我要求maas360 mdm的字符串。 以下是我的Android清单代码段:
<receiver android:name=".GetRestrictionReceiver"
android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.APPLICATION_RESTRICTIONS_CHANGED"></action>
</intent-filter>
</receiver>
以下是我的广播接收器:
public void onReceive(Context context, Intent intent) {
Log.d("Get Restriction", "on receive");
RestrictionsManager restrictionsManager = (RestrictionsManager) context.getSystemService(Context.RESTRICTIONS_SERVICE);
Bundle b = restrictionsManager.getApplicationRestrictions();
if(b.containsKey("siteName")) {
Log.d("Get Restriction", "Site name= "+b.getString("siteName"));
}
//String value = intent.getStringExtra("siteName");
}
以下是我的app_restriction xml:
<restrictions xmlns:android="http://schemas.android.com/apk/res/android">
<restriction
android:key="siteName"
android:title="SiteName"
android:restrictionType="string"
android:defaultValue="English">
</restriction>
</restrictions>
不幸的是,我的广播没有收到来自maas360 mdm的政策。
您能否帮助我了解我的代码中缺少哪些内容才能获得该政策?
答案 0 :(得分:0)
如果您查看此页面: https://developer.android.com/work/managed-configurations.html#listen-configuration
你会看到以下内容 - 注意:ACTION_APPLICATION_RESTRICTIONS_CHANGED意图仅发送给动态注册的侦听器,而不是发送到应用程序清单中声明的侦听器。
我看到你在应用程序清单中声明了监听器。它需要动态注册。