質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

解決済

1回答

4484閲覧

Xamarin.FormsでZXing.Net.MobileがAndroidのみカメラプレビューが表示されない

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

0グッド

0クリップ

投稿2017/07/11 10:56

編集2017/07/11 11:15

###前提・実現したいこと
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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

遅くなりましたが、原因不明のまま解決しました。
別の開発者のソースを取り込んだあと、何事もなかったかのように動きました・・。
取り込んだソースには、パーミッションをいじっただとか、該当ソースを触ったりはなかったのですが、謎は深まるばかりです。

投稿2017/08/29 12:02

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問