我正在为iPhone和Android开发MDM解决方案。 iPhone部分已经完成并且运行良好:)
在Android部分还有一些东西。 我之前从未使用过Android手机,所以它对我来说有点新鲜。
首先是如何添加电子邮件帐户(exchange,gmail和IMAP)。 如果我理解它是正确的,那么有几个不同的本机邮件应用程序捆绑了不同版本的Android和手机型号。
我尝试使用
添加一个交换帐户AccountManager am = AccountManager.get(context);
am.addAccount("my_exchange_mail@company.com", "com.htc.android.mail.eas", null, null, null, null, null);
但它没有显示在“设置”中 - >账户&同步。
有没有人知道如何做到这一点?
第二件事是如何将APN设置添加到手机。 据我所知,谷歌删除了冰淇淋三明治中的这种能力,如果这是正确的,那么我们不想将它添加到我们的MDM解决方案中。
第三件事是如何强制用户添加PIN码(或密码或刷掉9点的东西) 现在我设置了密码的最小长度和密码质量(对某事)
mDPM.setPasswordMinimumLength(mAdminName, 4);
mDPM.setPasswordQuality(mAdminName, DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
mDPM.setPasswordExpirationTimeout(mAdminName, 1);
}
然后我显示设置的新密码意图。
Intent intent = new Intent(DevicePolicyManager.ACTION_SET_NEW_PASSWORD);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
这使得设置新密码意图显示,用户可以在PIN,密码和刷卡之间进行选择。选项“无密码”被禁用。但是用户可以使用手机上的后退按钮来跳过设置新密码。
有没有办法真正强迫用户设置PIN码?
第四件事是关于自动加入新增加的WiFi。 我可以使用以下代码添加WiFi。但有没有办法让手机在范围内时自动连接到WiFi?
public boolean addWifi(String SSID, String encryptionType, String password, boolean hiddenNetowrk, boolean autoJoin) {
WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiConfiguration config = new WifiConfiguration();
config.SSID = "\"" + SSID + "\"";
if (encryption.trim().equals("WEP")) {
config.wepKeys[0] = "\"" + password + "\"";
config.wepTxKeyIndex = 0;
} else if (encryption.trim().equals("WPA")) {
config.preSharedKey = "\"" + password + "\"";
} else {
return false;
}
config.hiddenSSID = hiddenNetwork;
int id = wifi.addNetwork(config);
wifi.enableNetwork(id, false);
return true;
}
嗯,这是一个很长的问题:)希望对这四个问题中的一些问题给出答案:)