コードネーム1にリアフェーシングカメラのライブプレビューを表示しようとしています。私はネイティブインターフェイスを使用しています(私はAndroidを最初にターゲットにしています)。許可コード "android.permission.CAMERA"をコードネーム1のマニフェストに追加する方法
が私のアプリをビルドヒントを台無しにせずにカメラを使用できるようにするには、私は私のメインフォームに次の行を追加:
if (Capture.hasCamera()){
Dialog.show("Appareil photo détecté", "Votre matériel est bien équipé d'un appareil photo!", "OK", null);
}
私がやった
android.hardwareを述べたので、 .camera & android.permission.RECORD_AUDIO - com.codename1.Captureによってトリガーされます。
ただし、私はいつもjava.lang.RuntimeException: Fail to connect to camera service
を持っています。実際のデバイス(API LEVEL 19 aka Kit Kat)のAndroidスタジオのCN1から入手したソースを使用してアプリケーションをデバッグしています。私は例外のmanifest.xmlに次の権限の欠如によるものであったことに気づいしばらく
:
<uses-permission android:name="android.permission.CAMERA" android:required="false"/>
CN1に記載されているようにことに注意してくださいは<uses-feature android:name="android.hardware.camera" android:required="false" />
がすでに追加された行をブログCN1によって。
このラインを追加したので、ライブプレビューがよく表示されます。
なぜこのパーミッションがマニフェストに自動的に追加されないのですか。ビルドヒントに実際に追加する必要がありますか?
また、私はカメラを使って写真を撮って電話に保存し、カメラの許可はどちらも表示されません(Androidアプリケーション情報には表示されません)。たとえば、 Twitterのアプリでは、アプリのアクセス許可に「写真と動画を撮る」と表示されているため、携帯電話のカメラの権限を隠しても問題にはならないようです。
EDIT 11月20日2016:
実際Android Developer's guideはその
注意を述べている:あなたは、既存のカメラアプリを起動してカメラを使用している場合、アプリケーションは、この許可を要求する必要はありません。
CN1にはこの許可が必要です。
CN1の権限管理を手伝ってくれてありがとう。
実行時に許可を求めたくない場合は、compiledSDKversionをAndroid Lに設定することができます。その場合、アプリはすべてのMarshmallow機能を無視します。 – Tasneem