Android バーコード 検品 Demo

Android スマホを使用した、倉庫内検品プログラムデモです。

Android ハンディーターミナルを持っていないので、提案用に手持ちのAndroid スマホで検品システムを作成してみました。

今回の検品データの取得および実績送信は、http通信を使用しました。(一番一般的な方法だと思います)

SQL Serverは、ローカルネットに用意してもいいですが、今回は試しに、Microsoft Azureを使いました。実際に業務で使用する場合は、クラウド化が常識なので、自社クラウドかAzureになると思います。データベースの扱いは、ローカルもクラウドも特に違いはありません。

Android と SQLサーバーの橋渡しは、IISを使います。というかそれ以外の方法があるのでしょうか? ASP.NET(Visual Studio)でSQLを使ってやりたい放題できます。

Android Studioでのhttp通信は、HttpUrlConnectionでやりました。内部では、定番のSQLiteでデータを溜めておいて、まとめてhttpで送信します。1データ毎に送受信すると、IISの同時接続数が常に高くなるので、1作業毎にまとめた方がよいと思います。私が思うに、IISはローカルPC(Windows 10 Pro)を使用した方が安上がりだと思います。AzureでIIS用のVMを立ち上げると、毎月の費用がそれなりにかかるので、検品端末が、10台程度ならデスクトップPCの方が、無難だと思います。セキュリティ管理上もAndroidからは、ローカルネットワークにしかアクセスしないので、安全性も高いと思います。

パッケージ化したいと考えています。が、ユーザー毎に若干のカスタマイズは必要になるかと思います。
表示上、文字数が多過ぎたりすると画面上で他のコントロールと重なったり、また、Androidの専用機の場合は、スキャンモジュールが異なったりするので。



BarCodeEasyCheck / Windows 10 Mobile

BarCode Easy Check / Windows 10 Mobile

UWP開発の勉強目的で、バーコード照合プログラムをWindows 10 Mobile向けに作ってみました。


BarCodeEasyCheck

今回、デバッグに使用した端末は、NuAns NEOという機種なのですが、スペック的には普通のAndroid端末と変わらないのですが、バーコードの認識には、若干手間取ってる感じがしました。
機種による差なのかもしれません。他にWindows 10 Mobile端末を持っていないので、比較できないのが残念です。
開発ツールは、Visual Studio 2017です。Windowsアプリストアで公開するには、UWPで開発する必要があります。

Windows 10 のUWPで開発することの魅力は、デスクトップPC用のプログラムとモバイル端末のプログラムが、同じ言語で開発できる事にあるかと思います。特にデータの受け渡しなどは楽になるのではないいでしょうか?

ただ、Windows 10 Mobileに関しては、現時点では、シェアが少な過ぎ、端末も少ないので、実用性は低いかと思います。それでも、Windows 10は毎月のようにUpdateが行われ改良されていっているので(Mobileも含めて)、将来的に期待はしています。

Windows 10 Mobileが、業務向けOSとして完成度を高めて行って欲しいなあと個人的に思います。



ImportImap.exe / Microsoft .Net Framework

Andorid プログラムの「QR Send」「Easy Inventory」向けに作った、PC側でメールを受信~CSV出力を行う、ImportImap.jar をJava作ったのですが、メールの受信が正直遅いので、Windows向けに.Net Framework版を作成しました。

今回は、コマンド引数に1を付けて起動すると、受信~CSV出力まで自動で行い、終了するモードを追加しました。
例) “ImportImap.exe 1″
通常は、”ImportImap.exe” をそのまま起動すれば、手動モードで開きます。

やはり、クライアントPCは普通Windowsですし、たまたまAndorid開発がJavaだったので、Javaで作ってみたのですが、私のJavaスキルの問題ないのか、C#で作った方が結構早いというか普通でした。最近、MicrosoftのVisual Studioもマルチプラットフォームになってきているので、開発者も今後はこちらにシフトしてくるような気がします。



Android App WrSwitch (Wifi/画面回転 On/Off)

Wifi / 画面自動回転の ON/OFF スイッチを、自分用に作りました。

よく使う機能なので、今まで、誰かが作ったものをダウンロードして使っていましたが、どれも広告付きでうっとおしいので、広告無しの超シンプルなのを自作しました。

wrSwitch

電池の節約が、最大の目的です。

広告は、バッテリーやパケットを食うので悪です。

 

WiFiを使わないときは、WiFiをOffにしています。常にWiFi検索していると、バッテリー消耗が早いからです。

画面自動回転をOffにすると、電池の節約になります。ポケットの中で、立ったり横になったりすると、画面が切り替わる度に、電池が消耗するからです。

相変わらず、デザインがアレですが、ウザい広告から解放され、デザイン性が無いので飽きないかと・・・。



Android App myStart

以前作った、Legacy Launcherを少しいじって、myStart にアプ名を変更して、リリースしました。

今回は、Navigation Drawer(ナビゲーション・ドローワー)の勉強が目的です。

 

ナビゲーション・ドローワーは、最近のアンドロイドアプリのメニューとしては、標準になっているようです。

Toolbar(ツールバー)にメニューを追加する方法や、FloatingActionButton(フローティング・アクションボタン)しか使っていなかったので、どういった場合に使うべきか、よくわかりませんでした。

何となく、Windows のスタートメニューに似ています。違うのは真横から出てくる点でしょうか。画面を大きく使えるので、視認性も良いと思います。

今までは、ほとんど1画面で完結の、簡単なものしか作った事が無いので・・・。今更ですが、複数画面に渡るアプリでは、メニュー階層が解りやすくなります。

Android Studioは、どんどん進化して行っています。古いものは(古いアプリや手法)、どんどん捨てて新しいものに作り変えていかなければ、世の中に受け入れてもらえないんでしょうね。


ImportImap ■ Barcode Scan データ・受信メール取り込み

バーコード読み取りのAndroid アプリ用に、メール送信したデータをテキスト出力するプログラムを作成しました。

importimap 実行環境は、JRE 1.6以降です。

説明ページ

ダウンロードも上記
説明ページから。

qrsend1 easyinventory
qrSend easyInventory

メールサーバーに、IMAP接続して受信日と件名で検索するのですが、メール一覧の取得に意外と時間がかかります。
(javaだからなのか・・・?)

動作としては、受信フォルダーの中の件名を検索して、本文を取り出し、1スキャンのデータを一行毎に置き換えて、テキスト出力(CSV形式)します。
CSV形式なので、EXCELで開いたり、データベースに登録したり、その後にいろいろ活用できるかと思います。

今後は、こういった感じでAndroidアプリとPCアプリを組み合わせて、いろいろ拡張して行こうかと考えています。

ご意見がありましたら、また、お聞かせください。



easy Inventory / 簡単棚卸

マスター照合機能はありませんが、読み取ったバーコードと実績数(手入力)のデータを収集してメール送信する、簡単な棚卸プログラムを作りました。 こちら → easyInventory

jpn_02_main_settting jpn_07_qty1 jpn_06_datalist

入力ミスの確認画面で、ミスしたデータの削除のみ行えるようにしました。一応、QRコードも読み取れます。

送信元のメールですが、Gmail, Yahooメール, Windows Outlook メールのみを対応としています。Gmail, Windows Outlook メールで、二段階認証の設定をしている場合は、アプリパスワードを発行してそちらのパスワードを設定してください。

今まで、開発テスト環境には、Android OS 4.3 機までしか無かったのですが、やっと Android OS 7.0 機が手に入ったので、こちらでも検証できるようになりました。 Android OS 4.4頃から追加されたと思われる、アプリ単位でのアクセス権限への対応を行いました。

今頃気がついたのですが、当方が作成したプログラムは、Android OS 6.0以降では、カメラやフォルダーへのアクセス権限の確認画面が表示されずに、エラーとなってしまっていたようです。

Android OS 6 以降では、Runtime Permissionという概念で、 プログラムの初期実行時に、端末のどの機能にアクセスするかのチェックが行われ、ユーザーの許可を求める画面が表示されるようになりました。

実績の送信は、メールが汎用性もありベストだと思うので、当方のプログラムは、全部メール送信です。今度、時間があったら、PC側でメールの中身(実績データ)を取り出すアプリを作ろうと思います。開発はJavaで、出力はCSV形式がいいかなあと考えています。



easyChecer:Update バーコード照合

今年5月に作った、バーコード照合(easyChecker)ですが、よくよく考えてみるとJAN/EANコードだけと言うのもおかしい気がしてきたので、QRコードもスキャンできるようにしました。設定画面で、どちらにするか選択して、設定値を保存します。(内部のDBに記憶)

jpn_ok jpn_ng jpn_bartype

何かもう、ひと工夫入れたいところですが、慌てて作ったものにろくなものが無いので、止めときました。

QRのテストをしようとQRのバーコードを探してみると、意外と無いのですね。インターネットで検索するとたくさん出てきますが、ほとんどURLばかりです。QRコードは元々そういう使い方だったのでしょうか?

いくつかバーコードを読み取って気づいたのは、スマホのカメラ性能で、全然読み取り速度が違う点です。オートフォーカスの速度の違いか、画素数の違いか、機種によって全然違います。この点は、要注意ですね。

今度は、業務向けに、新しいやつを、また何か作ろうと思います。よく相談されるパレット管理とか、棚卸とか、実績をメールで送る仕様がいいかなと考えています。

それでは、また。


qrSend:Update バーコード・メール送信( 更新 )

以前作った、qrSend(QRバーコードのスキャン&メール送信)を更新しました。

主な内容としては、
①QR(二次元バー)/JAN(一次元バー)を切り替えて読み取れるように改修。
②端末内のDBにデータを蓄積して、「メール送信」で一括送信に変更。
③読み取り日時(YYYY/MM/DD HH:NN)を追加。

運用イメージは、送信者に作業者名を設定して、読み取ったバーコードを1メールにまとめて送信。
PC側からメールを自動で開いてBODYからデータ抽出。
この際、作業者、作業時刻、バーコードの一覧が取得できます。

jpn_02menu jpn_03bartype jpn_05mail_setting2

いろいろと細かい機能を追加しようかと、アイデアが浮かぶのですが、あまり手を加えすぎると汎用性が無くなるので、やりすぎない判断が難しいところです。
皆さんのアイデアをお待ちしております。
〜〜〜〜〜〜〜〜〜〜 10/31 〜〜〜〜〜〜〜〜〜〜〜〜
スキャンしたデータから、不要なものを削除する画面を追加しました。

jpn_02_menu jpn_data_list



easyFind:update/バーコード、マスターファイル検索

easyFind バーコード・スキャンによるマスターファイル内検索アプリのバージョンアップを行いました。

品目名とロケーション検索表示以外にいろいろ機能(実績をメールで送ったりとか)を持たせようとは考えているのですが、とりあえず、マスターファイルがSDカード直下でファイル名が”master01.csv”固定というのも自由度が無いので、ファイル名(*.csv)と保存場所をユーザーで指定できるようにしました。

これで、マスターファイルをGMAILで受信して、DOWNLOADフォルダーに保存して、そのパスを指定しておけば、PCからUSB接続しなくても、マスターファイルを端末のみで更新できるようになります。

eng_setting jpn_sel_master

android 端末によって、フォルダー名が異なるのですが、Kyocera SKT-01の場合、SDカード直下は、”/storage/sdcard1/”で、本体のダウンロードフォルダーは、”/sdcard/Download/”となっています。