私のアプリケーションでは、Camera、AudioInput(Micro)、Storageのアクセス権を要求する必要があります。 Android 6以降、アクセス権を得るには、これらのアクセス許可を実行時に要求する必要があります。ここまでは順調ですね。 これを行うには、hereというIonic 2 Cordova Plugin "Diagnostics"が必要です。Ionic/Angular Diagnostic.requestRuntimePermissionどのように? (Docs incomplete)
ご覧のとおり、このドキュメントは非常に不完全です。 Bluetoothの現在の状態を取得する方法のみを示します。 実際にはどのように実際に許可を受けていますか?スイッチ/ケースを扱うためにどのようなステータスに戻りますか?その情報はすべて必要ですが、ここでは必要ありません。
私が試した限り、何らかのdiagnostic.requestRuntimePermission機能があることがわかりました。
that.diagnostic.requestRuntimePermission('CAMERA')
.then((status) =>{
switch(status){
case "GRANTED":
console.log("Permission granted to use the camera");
break;
case "DENIED":
console.log("Permission denied to use the camera - ask again?");
break;
case "DENIED_ALWAYS":
console.log("Permission permanently denied to use the camera - guess we won't be using it then!");
break;
}
}).catch(e => console.error(e));
お知らせ::これは私がそれのように見えることができると思うが、私はそれが動作するかどうか知らないだけのコードです。この機能を使用すると、このような何かを行うことができますカメラは、私はこれを行うaviableであるかどうかを確認するには : だから、このうちの仕事に一例として、カメラの許可を取ることができます
let successCallback = (isAvailable) => { console.log('Is available? ' + isAvailable); };
let errorCallback = (e) => console.error(e);
that.diagnostic.isCameraAvailable().then(successCallback).catch(errorCallback);
その後、私はかどうかを知るために、カメラのAuthorizationSttusを取得する必要があります許可は拒否されているか、まだ要求されていません。これは以下のように動作します:私は私がここで返さ取得述べている知らないので、もう何をすべきかを知らないこの段階では
that.diagnostic.getCameraAuthorizationStatus()
.then((state) => {
switch(state){
/*HERE should I work with the State in order to request permission or not*/
}
}).catch(e => console.error(e));
。 は、私はそれがこのようなものだと思う:このdoesntの仕事
switch(status){
case "GRANTED":
console.log("Permission granted to use the camera");
break;
case "DENIED":
//Here should I now call the PermissionRequest function
console.log("Permission denied to use the camera - ask again?");
break;
case "DENIED_ALWAYS":
console.log("Permission permanently denied to use the camera - guess we won't be using it then!");
break;
}
が、私はそれがそのようなものでなければならないと思います。 だから、私を助けて、私を教えてください:ここで返さ取得し、どのように私はdiagnostics.requestRuntimePermission使用権はどうすればよい
それにアクセスします
どのステータス?
Hereは、同じ質問をした元のIonic2フォーラムへのリンクです。
問題は、私が使用しているコードバプラグインが私にとってもiOSもサポートしていることです。また、私が要求されたプレミッション関数を述べたように、それは提供します。彼らは文書化されていません。しかし、あなたはこれらの機能でアクセスすることができます。だからあなたのソリューションはAndroidのみにはいいですが、私はiOSも必要です。 –
私の回答が更新されました。今後さらにお役に立てば幸いです! – David
まさに私が必要なもの!ありがとうございました! –