在 Android 管理 API 策略中启用设备的相机应用
Enable Device's Camera App in Android Management API Policy
我的应用使用以下方式调用设备的相机应用:
Intent pictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (pictureIntent.resolveActivity(getPackageManager()) != null) {
File file = null;
try {
file = createImageFile();
Log.d(TAG, "created imagefile ");
} catch (IOException e) {
e.printStackTrace();
return;
}
Uri photoUri = FileProvider.getUriForFile(this, getPackageName() + ".provider", file);
Log.d(TAG, "openCamera: " + photoUri);
pictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(pictureIntent, MY_PERMISSIONS_REQUEST_CAMERA);
}
在设置为 "cameraDisabled" 的设备中使用该应用程序时:false 我仍然无法加载相机。
我的政策是:
{
"applications": [{
"packageName": "**************",
"installType": "FORCE_INSTALLED",
"defaultPermissionPolicy": "GRANT"
}],
"debuggingFeaturesAllowed":是的,
"addUserDisabled": 是的,
"adjustVolumeDisabled": 是的,
"outgoingCallsDisabled": 是的,
"locationMode": "HIGH_ACCURACY",
"cameraDisabled":错误,
"screenCaptureDisabled":是的,
"defaultPermissionPolicy": "GRANT",
"wifiConfigDisabled":错误,
"dataRoamingDisabled":错误,
"smsDisabled": 是的,
"factoryResetDisabled":错误,
"uninstallAppsDisabled":是的,
"tetheringConfigDisabled":是的,
"shareLocationDisabled":错误,
"funDisabled":是的,
"appAutoUpdatePolicy": "WIFI_ONLY",
"systemUpdate":{
"type": "WINDOWED",
"startMinutes": 10,
"endMinutes": 1430
},
"kioskCustomLauncherEnabled":是的,
"kioskCustomization":{
"deviceSettings": "SETTINGS_ACCESS_ALLOWED"
}
}
更新:
我最终使用 CameraX 库来创建我自己的相机。
您可能在二维码注册期间禁用了系统应用程序。
现在对于您的问题,您必须找到设备 default camera app
的 package name
并在策略中启用它。
例如,Snapdragon Camera 是我 Zebra 设备上的默认设置:
"applications": [
{
"packageName": "org.codeaurora.snapcam",
"installType": "FORCE_INSTALLED"
}
]
}
我知道每个设备品牌的相机应用程序会有所不同,但在禁用系统应用程序的情况下,这就是我一直使用的方式。
我的应用使用以下方式调用设备的相机应用:
Intent pictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (pictureIntent.resolveActivity(getPackageManager()) != null) {
File file = null;
try {
file = createImageFile();
Log.d(TAG, "created imagefile ");
} catch (IOException e) {
e.printStackTrace();
return;
}
Uri photoUri = FileProvider.getUriForFile(this, getPackageName() + ".provider", file);
Log.d(TAG, "openCamera: " + photoUri);
pictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(pictureIntent, MY_PERMISSIONS_REQUEST_CAMERA);
}
在设置为 "cameraDisabled" 的设备中使用该应用程序时:false 我仍然无法加载相机。
我的政策是:
{ "applications": [{ "packageName": "**************", "installType": "FORCE_INSTALLED", "defaultPermissionPolicy": "GRANT" }], "debuggingFeaturesAllowed":是的, "addUserDisabled": 是的, "adjustVolumeDisabled": 是的, "outgoingCallsDisabled": 是的, "locationMode": "HIGH_ACCURACY", "cameraDisabled":错误, "screenCaptureDisabled":是的, "defaultPermissionPolicy": "GRANT", "wifiConfigDisabled":错误, "dataRoamingDisabled":错误, "smsDisabled": 是的, "factoryResetDisabled":错误, "uninstallAppsDisabled":是的, "tetheringConfigDisabled":是的, "shareLocationDisabled":错误, "funDisabled":是的, "appAutoUpdatePolicy": "WIFI_ONLY", "systemUpdate":{ "type": "WINDOWED", "startMinutes": 10, "endMinutes": 1430 }, "kioskCustomLauncherEnabled":是的, "kioskCustomization":{ "deviceSettings": "SETTINGS_ACCESS_ALLOWED" } }
更新: 我最终使用 CameraX 库来创建我自己的相机。
您可能在二维码注册期间禁用了系统应用程序。
现在对于您的问题,您必须找到设备 default camera app
的 package name
并在策略中启用它。
例如,Snapdragon Camera 是我 Zebra 设备上的默认设置:
"applications": [
{
"packageName": "org.codeaurora.snapcam",
"installType": "FORCE_INSTALLED"
}
]
}
我知道每个设备品牌的相机应用程序会有所不同,但在禁用系统应用程序的情况下,这就是我一直使用的方式。