最新のマシュマロビルのカメラ、特に懐中電灯に関する問題があります。任意の事前マシュマロのバージョンで は、私は、オン/オフのフラッシュをオンにするために必要なすべては、以下の通りであった:マシュマロの懐中電灯のコントロール
private void turnFlashOn(final Camera camera, int flashLightDurationMs) {
if (!isFlashOn()) {
final List<String> supportedFlashModes = camera.getParameters().getSupportedFlashModes();
if (supportedFlashModes != null && supportedFlashModes.contains(Camera.Parameters.FLASH_MODE_TORCH)) {
mParams.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(mParams);
}
}
}
と
private void turnFlashOff(Camera camera) {
if (camera != null) {
final List<String> supportedFlashModes = camera.getParameters().getSupportedFlashModes();
if (supportedFlashModes != null && supportedFlashModes.contains(Camera.Parameters.FLASH_MODE_OFF)) {
mParams.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(mParams);
}
}
}
は残念ながら、マシュマロデバイスは野生でクラッシュし始めました。
のRuntimeException::getParametersは(空のパラメータを)失敗した
のRuntimeException:setParametersを私が取得する前にプレビューを開始および停止しようとした
を失敗どういうわけかcamera.getParameters()
とcamera.setParameters()
は、次のようなメッセージで失敗し始めましたパラメータで、もはやエラーをスローしません。しかし、camera.startPreview()
に電話すると、プレビューは再開されません。
私はカメラを離して再オープンするのが恐れられています。これは数秒かかるため、悪い経験をするでしょう。
マシュマロで確実に懐中電灯をオン/オフする方法に関する提案はありますか?
私はすでにカメラの権限を持っています。私は23をターゲットにしていないので、ランタイムのアクセス許可をまだ確認する必要はありません。 –
はい、いいえ。あなたが23を目標としていない場合、その許可は既に与えられているはずです。ただし、ユーザーはインストール後にそのアクセス許可を無効にすることができます。その場合、アクセス権を持っているかどうかを確認する必要があります(API 23デバイスで実行している場合)。ユーザーがそれを拒否したためでない場合、Camera APIは空のデータまたはヌルのデータを返すことがあります。この講演では、Marshmallowの権限の変更について詳しく説明します:https://youtu.be/WGz-alwVh8A?list=PLnVy79PaFHMUqqvwbjyKJZv1N8rzHOCBi –
あなたはそうです、そうです。しかし、許可された権限でもアプリケーションがクラッシュするので、Camera APIに関連する何かが変更され、LollipopやKitkatとは異なる動作をするようです。 –