ブログ・コラム

技術情報

2021.03.13

新しいツーリズムへの挑戦

あいにくの雨模様の中、

セニアカーを使った新しいツーリズムへの挑戦のサポートをしてきました。

 

タビーナ静岡の望月社長(実は愛鷹小・中学校の同級生)から話しを聞いて、 

それなら、セニアカーにGPSつけて、

旅行者が、いまだれがどこにいるか

リアルタイムにわかるようにしたらいいじゃない?

というアイディアを出したら

「それいいね」ということになり、

私も協力することに。

 

私も旅行なんてひさしぶり。

旅行会社、バス会社だけじゃなく、

セニアカー代理店

感染対策のプロフェッショナル

旅行介助士

そして私、IT企業

と、そうそうたるメンバーでの万全の態勢でのモニターツアー。

 

伊豆・三津シーパラダイス

中伊豆ワイナリーヒルズ

修善寺 虹の郷

わさびミュージアム

と、それぞれでセニアカーを使ってみた。

終日雨ふりでしたが、それでも、

各施設につくと、雨が小降りになり、

時には晴れ間が見えることも!

みんな、運を持っているのかも!

 

私は、それをうらから位置情報を監視し、

どの程度、位置情報が取れるか、

ほかにどんな機能があったら安全確保に有効なのかを

ヒアリングしてきました。

 

新しい取り組みを、メディアも取材してくれていました。

1社ではなかなかできないことを、

みんなで協力しながらチャレンジし

狙いすまして行動している人にこそ、

道は開けるかも。

2021.03.12

GPS(位置情報システム)活用

いま、GPSを活用した仕組をテスト中!

明日は、その実証試験。

楽しみです。

2020.03.30

【PHP】Google Driveへのアップロード

PHPからGoogleDriveへアクセスする事ができます。

たとえば、DBのバックアップ先としてGoogleDriveを指定することができます。

Google APIの有効化、クライアントシークレット、およびJsonファイルの取得が必要になりますが、
詳細はEnable the Google Drive APIを参照ください。

サンプルとして、ファイルをGoogleDriveへアップロードするサンプルを作りましたので、ご紹介します。

このサンプルは、コマンドから下記のように実行するとGoogleDriveへファイルがアップロードされます。

これをcrontabに設定して実行すれば、定期的にファイルをアップロードできます。

下記は、DBデータをZIP化して、そのファイルをGoogleDriveへアップロードするサンプルです。

※このサンプルソースに対するいかなる損害に対して、当方は一切の責任を負いかねます。
自己責任でお願いします。

2019.10.30

【Android】署名付きapk作成時の注意点

いざapkファイルを作って動作確認をしようと思ったら、インストールできない、アプリが起動しないという経験がないでしょうか。

そんな事例を紹介します。

端末により、署名付きapkがインストール出来ない

端末により、署名付きapkがインストール出来ないケースがあります。
(右図のように「アプリはインストールされていません」とエラーメッセージがでました。)

私が確認したのは下記条件です。

端末 Priori 3 LTE
(OS android5.1)
開発環境 Android Studio 3.1.4

Android Studio2.3から、署名付きAPKを作成する際に、Signature Versionsを選ぶ項目(V1, V2)が追加されました。

作成の際にこの項目にチェックが無い場合、端末のOSバージョンによってインストールできなくなります。

私の場合は、V1を選択をしていなかった(V2のみ選択)ためにインストールできない状況になりました。

後述しますが、これによりAndroid7.0未満の端末(今回は5.1)で、apkがインストール出来ない、という事象が発生しました。

改めて、V1, V2両方の署名にチェックを入れたところ、無事7.0以前の端末でもインストール出来ました。
(基本的には、両方チェックが推奨されています。)

V1は従来の署名方法で、V2はAndroid7.0以降の「インストール時間高速化」や「セキュリティ面が強化」された署名方法のようです。

挙動としては、Android7.0以降では「V2」がインストール時に検証され、7.0以前では「V1」が検証(V2は無視)されます。

今回は、この「V1」を選択していなかった為、検証すべき署名が見当たらなかった(OS5.1ではインストール出来なかった)ということになります。

※ ちなみに、Android Studio2.2以前では、デフォルトでV1とV2両方で署名されていたようです。
(2.3からはそれが選択できる(必要に応じてV1またはV2を外せる)ようになった。)

GoogleMapが表示されない

Android Studioでデバックしている時は地図が表示されていたのに、署名付きのapkを作ってインストールすると地図が表示されなくなる経験をしました。

API(Maps SDK for Android)の設定に於いて、「使用アプリを制限する」為にSHA1の登録が必要となります。

このSHA1には「デバッグ用」と「リリース用」があるのですが、「デバッグ用」のみ設定しているとapkを作ったときに地図が表示されなくなります。

以下コマンドでリリース用のSHA1が取得でき、apkを作ってインストールしても地図が表示されるようになります。

  • keytool -list -v -keystore your_keystore_name -alias your_alias_name

ちなみにデバッグ用のSHA1取得は、以下コマンドとなります。

  • keytool -v -list -keystore ~/.android/debug.keystore

参考サイトに記載されているSHA1の取得方法のコマンドは、デバッグ用の取得方法が多くあり、これを鵜呑みにコピペ実行して「設定は全て完了した」と思ってしまいました。

まとめ

今回の二つとも、分かってしまえば本当に何てことない単純なミスなのですが、最初の段階で見落としてしまうと、後でその原因を追求するのに、意外と時間が掛かってしまったりします。

みなさん、気をつけましょう!

※この記事に対するいかなる損害に対して、当方は一切の責任を負いかねます。
自己責任でお願いします。

2019.07.03

【C#】マウスフック

キーボードフックの記事にも記載しましたが、Windowsシステムは、メッセージキューにメッセージが蓄積され、メッセージループによってイベントが処理されていきます。

マウスを左クリックした、マウスを動かしたなどのイベントをwindowが非アクティブ状態で取得したい場合は、マウスのイベントをフックする必要があります。

以下にサンプルソースを掲載します。

サンプルソース

namespaceなどは適宜読み替えてください。

イベントをフックする場合は、DLL(user32.dll)にあるSetWindowsHookEx関数を使用して指定します。

この関数の引数の意味は下記のとおりです。

第1引数 フックするイベントの種類

マウスのイベントをフックする場合は、
WH_MOUSE_LL(14)を指定する。

第2引数 フック時の関数のアドレス イベントが発生した時に実行される関数。
第3引数 インスタンスハンドル 現在実行中のハンドルを渡す。
第4引数 スレッドID 0を指定すると、すべてのスレッドでフックされる。

サンプルソースのように指定すると、マウスボタンのクリック、マウス移動などのイベントが発生する都度EventMouse関数が呼ばれるようになります。

サンプルでは、マウスの座標をデリゲート関数に渡しています。

最後にCallNextHookEx関数を実行していますが、これは次のフックプロシージャ―へ渡すために実行しています。もしここで終了する場合は0を返すようにします。

このサンプルは、下記のように実行すると、MouseEvent関数が実行されます。

※このサンプルソースに対するいかなる損害に対して、当方は一切の責任を負いかねます。
自己責任でお願いします。

カレンダー

«9月»
   1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30   

ブログ内検索