###前提・実現したいこと
Xamarin.Formsもですが、アプリ開発において経験皆無です。
QR読み込みをZXing.Net.Mobileを用いて実装したいです
※iOSでは問題なく動きました
###発生している問題・該当のソースコード
Androidでのみ、カメラプレビューが表示されないです。
具体的には
・カメラアクセスの許可を求めた直後はカメラプレビューが表示される
・2度目以降のページ表示はカメラプレビューが表示されない(灰色の画面)
・戻るボタンを押下した際にチラっとカメラプレビューが見える
・Navigation.PushModalAsync(scanPage);
だと、きちんと表示される
※QR読み込みは動いています。
PCL側
C#
1// PCL側 MenuPage.xml.cs 2public partial class MenuPage: ContentPage 3{ 4 InitializeComponent(); 5 6 var readQRButton = new TapGestureRecognizer(); 7 readQRButton.Tapped += (s, e) => 8 { 9 var options = new MobileBarcodeScanningOptions(); 10 options.PossibleFormats = new List<ZXing.BarcodeFormat>() { 11 ZXing.BarcodeFormat.QR_CODE 12 }; 13 14 var scanPage = new ZXingScannerPage(options, new StackLayout {Opacity = 1 }); 15 bool scanFinished = false; 16 17 scanPage.OnScanResult += (result) => 18 { 19 scanPage.IsScanning = false; 20 Device.BeginInvokeOnMainThread(async () => 21 { 22 if (!scanFinished) 23 { 24 scanFinished = true; 25 26 await Navigation.PopAsync(); 27 await DisplayAlert("", result.Text, "OK"); 28 } 29 }); 30 }; 31 App.Current.MainPage.Navigation.PushAsync(scanPage); 32 //Navigation.PushModalAsync(scanPage); //Modalだとなぜかちゃんと表示される 33 }; 34 readQR.GestureRecognizers.Add(readQRButton); 35} 36 37// MainActivity.cs 38protected override void OnCreate(Bundle bundle) 39{ 40 base.OnCreate(bundle); 41 42 Forms.Init(this, bundle); 43 global::ZXing.Net.Mobile.Forms.Android.Platform.Init(); 44} 45 46public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults) 47 { 48 ZXing.Net.Mobile.Android.PermissionsHandler.OnRequestPermissionsResult(requestCode, permissions, grantResults); 49 }
###エラーメッセージ
→文字数制限の為はいらなかったので割愛・・いい添付方法があれば教えてください。。。。
###試したこと
・AndroidマニュフェストにFlashlightも追加 ->特に変わらず
・Navigation.PushModalAsync(scanPage);
にしてみる ->ちがうんだ、modalじゃダメなんだよ・・
・ZXingをアンインストール->インストール
・readQRタップ時のイベントの中身をtry{}catch(Exception ex){DisplayAlert("",ex.Message,"OK")}
してみた ->エラー表示なし
###補足情報
・ZXing.Net.Mobile v2.2.9
・Xamarin.Android 7.3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。