私はXamarinでAndroidアプリを作っています。これはzxingを使用しています。Xamarinについてカメラの許可
ユーザがボタンをクリックすると、QrScanページとダイアログボックスが表示され、カメラの許可を求めるダイアログが表示されます。
ユーザーが許可するかどうかを確認するダイアログボックスを表示するには、クリックするたびに権限を許可してください。
ユーザーが[拒否]をクリックすると、アプリケーションを再起動する前に権限ダイアログが表示されなくなりました。
ご存知ですか?
これは私のソースです。
アンドロイド--- MainActivity.cspublic class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
ZXing.Net.Mobile.Forms.Android.Platform.Init();
LoadApplication(new App { OSVersion = "Android Version " + "2.0" });
}
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
{
// If this is not be, occur unexpected exception when user click deny
if(grantResults[0] == Permission.Denied)
{
return;
}
global::ZXing.Net.Mobile.Android.PermissionsHandler.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
そして、これがクリックされたボタンと呼ばれるPCLプロジェクトで私の実行QrScan方法です。
public async void ImgQrScan_Clicked(object sender, EventArgs e)
{
this.TappedEvent?.Invoke(sender, e);
CustomScanViewMaker();
await Navigation.PushModalAsync(oCustomQrScanPage);
zxingPage.IsScanning = true;
string sScanResult = "";
zxingPage.OnScanResult += (result) =>
{
sScanResult = result.Text;
zxingPage.IsScanning = false;
Device.BeginInvokeOnMainThread(async() =>
{
this.OnClicked?.Invoke(sender, new QrScannerClickEventArgs(sScanResult));
await Navigation.PopModalAsync();
});
};
this.OnClicked?.Invoke(sender, new QrScannerClickEventArgs(sScanResult));
}
ありがとうございます。
あなたは、この問題を解決しましたか? –