Я потратил много времени на отладку различных проблем, которые можно было воспроизвести только на определенных устройствах.
Например, я оставил свои попытки сделать снимок с камеры с помощью Intent. Потому что только ограниченный набор устройств ведет себя как положено.
Другой пример, когда я использую байтовый массив из onPictureTakenCallback:
public void onPictureTaken(byte[] data, Camera camera) {
byte[] tempData = new byte[data.length];
System.arraycopy(data, 0, dataTemp, 0, data.length);
///...
}
Так что, если я не сделаю копию, а использую оригинальный массив данных через некоторое время, у меня возникнут проблемы, потому что некоторые устройства очищают этот массив через некоторое время. Но другие устройства не выполняют такую очистку, поэтому она отлично работает без копирования.
Еще один пример:
Некоторые устройства возвращают ноль, когда:
Camera.Parameters params = camera.getParameters();
List<Camera.Size> sizes = params.getSupportedPreviewSizes();
// sizes is null
Но большинство устройств (я думаю) возвращают список поддерживаемых размеров.
Так что мне интересно, есть ли какая-либо база знаний / FAQ, собранная по таким проблемам? Если нет, давайте разместим здесь вопросы, с которыми мы столкнулись?