gpt4 book ai didi

java - 使用EMM限制AirWatch在PlayStore上发布应用程序时收到错误

转载 作者:行者123 更新时间:2023-11-30 04:55:52 24 4
gpt4 key购买 nike

因此,我一直在努力开发将使用EMM AirWatch的Android应用程序。
如文档所述,这些限制非常简单。
我必须在清单中添加一个元数据标签,并且必须添加一个带有限制的xml文件。 Java代码已相应完成。到目前为止,一切都很好。但是,当我尝试将其发布到PlayStore时,收到消息“ APK清单指定了应用程序限制架构,但未找到。”顺便说一句,我正在使用Titanium Appcelerator。
要使此工作可行,该怎么办?

这是我的清单的片段:

<?xml version="1.0" encoding="UTF-8"?>
<ti:module xmlns:ti="http://ti.appcelerator.org"
xmlns:android="http://schemas.android.com/apk/res/android">
<android xmlns:android="http://schemas.android.com/apk/res/android">
<manifest>
<application>
<meta-data android:name="android.content.APP_RESTRICTIONS"
android:value="/res/xml/app_restrictions" />
</application>
</manifest>
</android>




这是app_restrictions.xml:

<?xml version="1.0" encoding="utf-8"?>
<restrictions xmlns:android="http://schemas.android.com/apk/res/android">
<restriction
android:key="AppLanguage"
android:title="@string/AppLanguage"
android:restrictionType=string/>
<restriction
android:key="AppUser"
android:title="@string/AppUser"
android:restrictionType="string"/>
<restriction
android:key="AppPassword"
android:title="@string/AppPassword"
android:restrictionType="string"/>
<restriction
android:key="AppStationID"
android:title="@string/AppStationID"
android:restrictionType="string"/>
<restriction
android:key="DeviceSerialNumber"
android:title="@string/DeviceSerialNumber"
android:restrictionType="string"/>
</restrictions>


这是我的Java文件:

public class AirwatchandroidModule extends KrollModule
{

private static final String LCAT = "AirwatchandroidModule";
private static final boolean DBG = TiConfig.LOGD;
public static final String APP_LANGUAGE = "AppLanguage";
public static final String APP_USER = "AppUser";
public static final String APP_PASSWORD = "AppPassword";
public static final String APP_STATION_ID = "AppStationID";
public static final String DEVICE_SERIAL_NUMBER = "DeviceSerialNumber";

public AirwatchandroidModule()
{
super();
}

static KeyedAppStatesReporter rep;

@Kroll.onAppCreate
public static void onAppCreate(TiApplication app)
{
Context context = app.getApplicationContext();
KeyedAppStatesReporter reporter = SingletonKeyedAppStatesReporter.getInstance(context);
rep = reporter;
}
public String appLanguage;
public String appUser;
public String appPassword;
public String appStationID;
public String appDeviceSerialNumber;

@Kroll.method
public String LoadAirWatch()
{

RestrictionsManager myRestrictionsMgr =
(RestrictionsManager) getActivity()
.getSystemService(Context.RESTRICTIONS_SERVICE);

Bundle appRestrictions = myRestrictionsMgr.getApplicationRestrictions();

if (appRestrictions.containsKey(APP_LANGUAGE)) {
appLanguage = appRestrictions.getString(APP_LANGUAGE);
System.out.println("appLanguage => " + appLanguage);
}
else
{
System.out.println("No appLanguage");
appLanguage = "N";

}

if (appRestrictions.containsKey(APP_USER)) {
appUser = appRestrictions.getString(APP_USER);
System.out.println("appUser => " + appUser);
}
else
{
System.out.println("No appUser");
appUser = "N";

}

if (appRestrictions.containsKey(APP_PASSWORD)) {
appPassword = appRestrictions.getString(APP_PASSWORD);
System.out.println("appPassword => " + appPassword);
}
else
{
System.out.println("No appPassword");
appPassword = "N";

}

if (appRestrictions.containsKey(APP_STATION_ID)) {
appStationID = appRestrictions.getString(APP_STATION_ID);
System.out.println("appStationID => " + appStationID);
}
else
{
System.out.println("No appStationID");
appStationID = "N";

}

if (appRestrictions.containsKey(DEVICE_SERIAL_NUMBER)) {
appDeviceSerialNumber = appRestrictions.getString(DEVICE_SERIAL_NUMBER);
System.out.println("appDeviceSerialNumber => " + appDeviceSerialNumber);
}
else
{
System.out.println("No appDeviceSerialNumber");
appDeviceSerialNumber = "N";

}

return appLanguage + "|" + appUser + "|" + appPassword + "|" + appStationID + "|" + appDeviceSerialNumber;
}

}


使该应用程序与Airwatch配合使用时我缺少什么吗?

最佳答案

好吧,经过几天的痛苦和痛苦,我终于找到了解决方案。
我不知道为什么,但是Android Studio(Android开发者网站所基于的)和Titanium Appcelerator上的某些代码之间几乎没有(几乎不是很少)差异。
我试图将文件从一个地方移到另一个地方,几乎阅读了整个互联网以找到解决方案,但是整个过程一直困扰着我。
Android开发人员网站(https://developer.android.com/work/managed-configurations)告诉我们将以下内容添加到清单中:

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


这可能适用于Android Studio,但不适用于Appcelerator。
这是我提到的小差异。
什么对我有用?
这个:

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


名称和资源应使用完全相同的词,且不得使用大写字母。

就是这个。我希望任何人阅读此书,在处理此错误时都可以节省时间和理智。

关于java - 使用EMM限制AirWatch在PlayStore上发布应用程序时收到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59182278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com