特定のデバイスでのみ再現可能なさまざまな問題のデバッグに多くの時間を費やしました。
たとえば、インテントを使用してカメラから写真を撮る試みを残しました。限られたデバイスのセットだけが期待どおりに動作するためです。
もう1つの例は、onPictureTakenCallbackのバイト配列を使用する場合です。
public void onPictureTaken(byte[] data, Camera camera) {
byte[] tempData = new byte[data.length];
System.arraycopy(data, 0, dataTemp, 0, data.length);
///...
}
したがって、コピーを作成せずに、しばらくしてから元の「データ」配列を使用すると、一部のデバイスがしばらくしてこの配列をクリーンアップするため、問題が発生します。しかし、他のデバイスはそのようなクリーニングを行わないため、コピーを行わなくても完全に機能します。
もう1つの例:一部のデバイスは、次の場合にnullを返します。
Camera.Parameters params = camera.getParameters();
List<Camera.Size> sizes = params.getSupportedPreviewSizes();
// sizes is null
しかし、ほとんどのデバイス(私は思う)はサポートされているサイズのリストを返します。
それで、そのような問題を集めた知識ベース/ FAQはあるのだろうか?そうでない場合は、私たちが直面した問題をここに投稿しましょう。