ザマリンリン

xamarin初心者のブログでーす。

ZXingでバーコードスキャンを試してみる。(android)

昨日に引き続きandroidを試してみました。

xamarin.hatenablog.jp

 

Androidプロジェクトで同じくzxingをインストール。

f:id:kakikueba:20170116160636p:plain

 

カメラとフラッシュライトのところをチェック入れてる。

f:id:kakikueba:20170116161244p:plain

 

とりあえず、ここで実機で確認。

f:id:kakikueba:20170116161040p:plain

何故かわかりませんが、実機に配置されるものの「実行に失敗しました」とでる。

数時間ハマりました。

原因はよくわからんけど、xamarin studioを再起動することで解消しました。

それと日本語入力のモード変換が上手くいかない件も再起動により解消してました。

まだまだ、安定してないみたいですね。

 

ZXingですがiOSの場合は、カメラ初回起動がちょいと遅いですね。

androidはバーコード読み取り精度がいまいちですね。なかなかフォーカスが合わずスキャンしてくれません。

オプションとかで調整できればよいのですが。

時間があったらそのうち調べてみます。

 

本日はこれまで。

 

 

 

 

 

 

 

 

ZXingでバーコードスキャンを試してみる。(iOS)

nugetにいろいろ便利なライブラリが揃ってるので、それらも使いこなして楽したいですよね。

田淵さんが幾つか紹介されているので、その中から一つ試してみました。

qiita.com

 

まず、PCLのプロジェクトでzxingをインストール。

f:id:kakikueba:20170115211013p:plain

 

iOSプロジェクトでも同じくzxingをインストール。

とりあえず、この時点でのソリューション状態。

f:id:kakikueba:20170116023224p:plain

 

PCLプロジェクトのApp.xaml.csを修正。

ここ気づかずに半日ハマっておりました(泣

        public App()
        {
            InitializeComponent();

            //MainPage = new testZXingPage();
            MainPage = new NavigationPage(new testZXingPage());
        }

 

testZXingPage.xamlに以下追加

<StackLayout Padding="10">

  <Button Text="Scan" Clicked="ScanButtonClicked" />
</StackLayout>

 

testZXingPage.xaml.csに以下追加

        async void ScanButtonClicked(object sender, EventArgs s)
        {
            var scanPage = new ZXingScannerPage()
            {
                DefaultOverlayTopText = "バーコードを読み取ります",
                DefaultOverlayBottomText = "",
            };

            // スキャナページを表示
            await Navigation.PushAsync(scanPage);

            scanPage.OnScanResult += (result) =>
            {
                // スキャン停止
                scanPage.IsScanning = false;

                // PopAsyncで元のページに戻り、結果をダイアログで表示
                Device.BeginInvokeOnMainThread(async () =>
                {
                    await Navigation.PopAsync();
                    await DisplayAlert("スキャン完了", result.Text, "OK");
                });

                //scanedData.Add(result.Text);
            };
        }

 

 iOSプロジェクト

AppDelegate.csに以下追加

global::ZXing.Net.Mobile.Forms.iOS.Platform.Init();

 info.plistに以下追加(追加しないと実行時にスコンと落ちます)

<key>NSCameraUsageDescription</key>
<string>カメラを利用してスキャンします。</string>

info.plistを選びメニューで「プログラムから開く>Xcode.app」を選択すれば追加可能ですよ。

 

以上で完了!

 

 

※プロファイルの事はよくわからんですけど、特に何もすることなくうまくいきました。

 プロファイル259となってます。

f:id:kakikueba:20170116031406p:plain

 

 

 

 

Xamarin.Forms PreviewのTips試してみた。

ytabuchi.hatenablog.com

 

まだまだ初心者なので、見当ハズレだったらごめんなさい。

f:id:kakikueba:20170114212654p:plain

こういうふうに書き換えて、ViewModelLocatorを使わないようにしても、previewにデータは表示されますね。

xamarin最新バージョンでは、普通の書き方でデータまで表示できるようになったということなのかな?

 

慢性的なmac容量不足問題

このような状況がずっと続いてます(泣

f:id:kakikueba:20170114120243p:plain

容量不足解消のため2年前に拡張メモリカード追加してみたんですけどね。

ほぼ開発でのみ利用なんで、開発系のログとかSDKとかを拡張メモリにかわせれば良いのですが。

あー、Windowsで開発したい。xcodewindowsで動くようにしてくれないかな。