2017年12月28日木曜日

Wi-Fiのセキュリティについて

こんにちは。

知り合いでクレジットカードを不正利用されるということが起きました。

少し、聞き取りをしましたが、漏洩の原因が不明です。
ただし、Wi-Fiについて、意識が低いことが分かったので、できるだけ多くの方に知っていただきたく、記事に残すこととしました。

Wi-Fiは、LANケーブルを繋げず、電波で通信を行います。電波なので、誰でも傍受できてしまいます。
そこで、データを暗号化し解読を難しくすることにより、セキュリティを維持しています。

Wi-Fiの暗号化の技術は、WEP→WPA→WPA2と進化してきました。

ただし、最新のWPA2を使っていれば、安心!!ってことはありません。

ちょっと前にWi-Fiのセキュリティホールが話題になっていましたね。

IPA(情報処理推進機構)にも記事があります。

https://www.ipa.go.jp/security/ciadr/vul/20171017_WPA2.html

最新のWPA2で脆弱性が発見されました。

Windows、Android、iOSは、OSのアップデートするようにと書かれています。Androidは使っている端末がアップデートを公開しているかどうかは機種に依ります。
まだ対応していない機種もありそうですね。

しかし、アップデートしたからと言って、安心はできません。
脆弱性はこれから次々と見つかっていくと思われます。

また、ホームページを開くとき、アドレスを見ると、「http」、または、「https」で始まっていると思います。

「https」の「s」は、secureの略であり、暗号化されています。ホームページで重要な情報を入力する際には、「https」で始まっていることを確認する習慣をつけましょう。

重要な情報が、例え暗号化されているとはいえ、誰でも傍受できる空間を飛び交っているというのは、危険です。

まとめ

・パソコンは、有線LANで接続する。

・重要な情報は、パソコンでのみ入力する。

・「http」で始まるアドレスのホームページでは重要な情報を入力しない。

・公共のWi-Fiは使用しない。

・全ての機器のOSを常に最新にアップデートする。

・セキュリティソフトをインストールする。

補足

有線LANは、物理的に難しいため、Wi-Fiで繋いでいるという人もいると思います。
しかし、情報を抜かれるのと、ケーブルの配線が大変なのは、どちらが良いでしょうか。
そもそも、Wi-Fiでつないだ場合、有線に比べて、通信速度が落ちます。

ちょっと高くなりますが、平べったくて、軽いケーブルも売っています。これを使えば、床ではなく、扉の上などを這わせやすいです。


2017年12月16日土曜日

DVDラックのヘルプ


公開中のDVDラックのヘルプを記載します。


0.目次

  1. DVDラック画面

  2. バーコード読み込み

  3. 検索画面

  4. 入力画面

  5. Web検索画面

  6. 検索結果

  7. 新作検索

  8. 広告非表示

  9. 設定



1.DVDラック画面



①メニュー


メニュー 説明
表示切替
表示切替の選択画面が表示され、選択すると、DVDの一覧(④)の表示形式が変わります。
画面を開き直したとき、前回選択した列数で表示されます。
検索
登録済みのDVDの検索画面を表示します。
その他
その他のメニュー(新作検索以降のメニュー)を表示します。
新作検索 新作検索の実施、結果表示ができます。
設定 設定画面を表示します。
ヘルプ 本ヘルプを表示します。
お知らせと更新情報 お知らせと更新情報を表示します。
動画広告視聴 動画広告視聴ができます。視聴すると広告が一定時間表示されなくなります。残っている広告非表示期間を確認できます。
ログ表示 新作検索とバックアップのログが表示されます。

②タブ

登録済みのDVDの一覧を以下のグループ分けで表示します。
設定の「DVDラック画面」-「タブ表示位置調整」で、タブを表示/非表示設定、タブの順序設定ができます

タブ 説明
全て 全てのDVDを表示します。
購入予定 入力画面で購入予定としたDVDを表示します。
※購入予定のDVDはこのタブのみに表示されますが、他のタブにも表示するには【設定】→【一般】で設定します。
視聴済み 入力画面で視聴済みとしたDVDを表示します。
未視聴 入力画面で視聴済みとしていないDVDを表示します。
シリーズ シリーズ物の一覧を表示します。
シリーズ以外 シリーズ物以外の一覧を表示します。
出演者/監督 出演者/監督の一覧を表示します。
ジャンル ジャンルの一覧を表示します。
棚コード 棚コードの一覧を表示します。
タグ タグの一覧を表示します。

③選択モードの切り替えと並び替え



(ア)選択モード切り替え

左端のチェックボックスで、選択モードに切り替えられます。選択モードで、複数選択して変更、または、削除ができます。

(イ)並び替え順序切り替えボタン

並び替え順序を変更します。▼が降順、▲が昇順です。
タップするたびに、▼→▲と変化します。

(ウ)並び替え項目切り替えボタン

並び替え項目を変更します。タイトルカナや発売日などで並び替えが行えます。タブによって項目は異なります。
タップするたびに、変化します。

(エ)並び替え項目選択ボタン

並び替え項目の選択画面を表示します。

(オ)件数

選択中のタブ(②) のDVDやシリーズなどの数を表示します。

④DVDの一覧

選択中のタブのDVDの一覧を表示します。メニュー(①)で表示方法変更や、③で並び替えができます。

⑤追加ボタン

DVDを追加します。以下が選択できます。

選択肢 説明
バーコード カメラ機能でバーコードからJANコードを読み取り、WebからDVD情報を取得します。
カメラ機能を使用する為、最初に権限の許可のメッセージが表示されます。
手入力 DVD情報を全て手入力します。
Web検索 タイトルなどの検索条件を入力し、WebでDVD情報を取得します。


⑥~⑧「出演者/監督」タブ




⑥「出演者/監督」タブの「対象」

「対象」にチェックを入れると⑧で除外されていない出演者/監督の一覧が表示されます。

⑦「出演者/監督」タブの出演者/監督

登録されている出演者/監督の一覧が表示されます。

⑧「出演者/監督」タブの除外

チェックをすると新作検索の「出演者/監督で検索」で除外されます。

(新作検索の通信量と時間が節約されます。)



△目次に戻る

2.バーコード読み込み


カメラ機能でバーコードからDVDのJANコードを読み取り、WebからDVD情報を取得します。
カメラ機能を使用する為、最初に権限の許可のメッセージが表示されます。

追加画面のバーコードボタンの横の設定アイコンをタップすると、読み取りモードが選択できます。最新モードを推奨しますが、上手く読み取れない場合は、従来モードの2つをお試しください。
また、「バーコード読み取りボタンを表示」をチェックすると、DVDラック画面にバーコード読み取りボタンが常に表示されます。

①最新モード

バーコードを枠の赤い線に合わせてください。
左上のボタンをタップするとライトがつきます。

②従来モード、従来モード(旧カメラ)

JANコードが読み取れるまで、連続でオートフォーカスを行います。

右上のボタンをタップすると切り取りモードに切り替わります。
中央の切り取り枠の中に読み取りたいバーコードが映るようにしてください。


△目次に戻る

3.検索画面




登録済みのDVDを検索できます。検索したい条件を設定して、DVDラック画面に戻ると該当のDVDだけが表示されます。検索中は、DVDラック画面のメニューの検索アイコンが赤くなります。

検索中のDVDラック画面のメニュー

①メニュー

・クリア 検索条件を初期状態に戻します。

②未視聴/視聴済み

全て、未視聴、視聴済みから選択します。

③タイトル

入力した文字列を含むタイトルを検索します。


④ジャンル、棚コード、タグ、出演者/監督

入力した文字列と一致するジャンル、棚コード、タグを検索します。
入力した文字列を含む出演者/監督を検索します。
入力欄で文字を入力できますが、選択ボタンで、選択することもできます。
:選択ボタン



⑤Web検索で非表示に設定したDVDを表示

Web検索や新作検索で、非表示に設定したDVDだけを表示します。


△目次に戻る

4.入力画面




①メニュー


メニュー 選択できる条件 説明
保存せずに終了 変更 保存せずに画面を閉じます。変更の場合、閉じると自動で保存します。
保存 新規追加 DVD情報を保存します。変更の場合、閉じると自動で保存します。
非表示 Web検索結果、新作検索結果 DVD情報を検索結果で非表示になるように設定します。
削除 変更 DVD情報を削除します。
再取得 設定されている条件でWebからDVD情報を取得します。
ただし、以下は変更しません。
視聴済み、購入予定、ジャンル、棚コード、タグ、視聴日、感想、レート
シリーズWeb検索 タイトル(シリーズ)、出演者/監督を設定した状態でWeb検索画面を起動します。
出演者/監督Web検索 出演者/監督を設定した状態でWeb検索画面を起動します。


②シリーズ編集、話数編集

(1)シリーズ編集


シリーズを編集します。
「シリーズ編集」ボタンの横に、シリーズとナンバーを表示しています。
「シリーズ編集」ボタンをクリックすると、以下の画面が表示されます。





(ア)自動作成、1.0とする、コピー


ボタン説明
自動作成下記(イ)~(オ)を自動で設定します。
ただし、完結は、自動で判別できません。手入力してください。
1.0とするシリーズにタイトル、シリーズ種類にシリーズ、ナンバーに1.0を設定します。
コピーシリーズにタイトル、シリーズ種類にシリーズ以外を設定します。

※バーコード読み取り時、Web検索時に、上記の自動作成と同じ処理が実行されています。
※自動作成とは、タイトルからシリーズと判定できる文字列を探して作成しています。
現在、対応している文字列は、
「(10)」、
「上」、「中」、「下」、
「上巻」、「中巻」、「下巻」、
「前」、「後」、「前編」、「後編」、
「2018年4月号」、「2018年4/1号」です。
数字は、0123456789、零一二三四五六七八九十壱弐参を認識します。
括弧は、((〈<【「『を認識します。

(イ)シリーズ

 シリーズを入力します。シリーズ物の場合は、タイトルから巻数などを除いたものを入力します。
例:「ウォーキング・デッド コンパクトDVD-BOX シーズン1」
→「ウォーキング・デッド」

(ウ)シリーズカナ

シリーズのカナを入力します。カナは並び替えで使用します。
自動作成などでは、タイトルカナを設定しています。

(エ)シリーズ種類

シリーズ以外、シリーズ、完結から選択します。
シリーズ物で、このDVDで完結している場合は、完結を選択してください。
DVDラック画面の「シリーズ」 タブで「完結」と表示されます。
また、新作検索の「シリーズで検索」で検索から除外されます。
(新作検索の通信量と時間が節約されます。)

(オ)ナンバー

シリーズの場合に巻数を入力します。ナンバーは並び替えで使用します。
自動作成では、上、中、下の場合、1.0、2.0、3.0を設定します。


(2)話数編集


話数を編集します。
「話数編集」ボタンの横に、話数を表示しています。
「話数編集」ボタンをクリックすると、以下の画面が表示されます。


(ア)話数、反映ボタン

話数が未設定の場合は、この(ア)のみ表示されます。
話数を入力して、反映ボタンをクリックして下さい。
話数分だけ、下に行が追加されます。

(イ)視聴済み

視聴済みの場合、チェックを入れてください。どこまで視聴したか分かりやすくなります。

(ウ)タイトル

各回のタイトルを保存したい場合は、該当回のタイトルを入力してください。

(エ)視聴日

視聴日を保存したい場合は、視聴日を入力してください。


③完結~⑧出演者/監督






③完結

シリーズ物で、このDVDで完結している場合は、チェックを入れてください。
DVDラック画面の「シリーズ」 タブで「完結」と表示されます。
また、新作検索の「シリーズで検索」で検索から除外されます。
(新作検索の通信量と時間が節約されます。)

④視聴済み

視聴した場合、チェックを入れてください。

⑤購入予定

購入予定の場合、チェックを入れてください。
DVDラック画面の「購入予定」タブだけに表示されます。

⑥イメージ変更

イメージ表示部分をクリックすると、イメージを変更できます。以下から選択できます。

・拡大表示
イメージを拡大表示します。
・カメラで撮影
外部カメラを使用して撮影します。撮影後、外部ツールで画像の編集ができます。
その際、一時的にカメラの使用の権限許可と、写真を外部ストレージに保存するため、外部ストレージへのアクセスの権限許可のメッセージが表示されます。許可をすると操作ができます。
・アルバムから選択
既にアルバムに保存してある画像が選択できます。
・削除
表示されているイメージを削除します。

⑦サイト

Amazon、楽天のこのDVDのページを表示します。購入や予約ができます。

⑧出演者/監督

出演者と監督は複数人登録できます。登録した先頭の名前が⑧に表示されます。
左の選択ボタンをクリックすると出演者/監督の編集画面が表示されます。


⑨ジャンル、棚コード、タグ~⑩視聴日、感想、レート






⑨ジャンル、棚コード、タグ

入力欄で自由に入力できます。選択ボタンクリックで、他のDVDで入力済みの一覧が表示され、選択することもできます
・ジャンル
「アクション」などを入力して下さい。使用しない場合は未入力でも構いません。
・棚コード
「DVDラック1」や「映画館」、「レンタル」、「処分済み」などを入力して下さい。使用しない場合は未入力でも構いません。
・タグ
ご自由にお使いください。 使用しない場合は未入力でも構いません。

⑩視聴日、感想、レート

自由にご使用ください。
また、感想、レートは、設定の「入力画面」-「感想表示」、または、「レート表示」で、表示/非表示の切り替えができます。
このボタンは、クリアボタンです。感想をクリアします。




△目次に戻る

5.Web検索画面

DVD情報をWeb検索します。



タイトル、出演者/監督、発売元、JANを入力して、メニューの「実行」をクリックしてください。

取得ページ数を設定して、取得するページの限度を指定できます。1ページ当たり30件です。
例えば、「5」と設定すれば、最大で150件までしか取得しません。

実行中は、メニューの「実行」が「キャンセル」に変わります。実行をキャンセルしたい場合、クリックしてください。

メニューの「前回実行結果」で、前回の検索結果が表示されます。


△目次に戻る

6.検索結果

Web検索や新作検索結果表示で、表示されます。

①選択モード切り替え

DVDラック画面と同様に、一番上の左端のチェックボタンで選択モードに切り替えられます。選択モードで、複数選択して保存、または、非表示(非表示として保存)ができます。
※非表示は、Web検索や新作検索で今後表示されないようになります。
非表示にしたDVDは、3.検索画面の⑤「非表示に設定したDVDを表示」で、表示することができます。

②DVDをクリック

DVDをクリックすると、入力画面が表示されます。入力画面でも「保存」、「非表示」ができます。



△目次に戻る

7.新作検索

検索を実行すると、登録しているDVDの一番新しい発売日以降発売のDVDがないか検索します。

①新譜検索画面表示

DVDラック画面のメニュー「新作検索」で、以下のボタンがある新作検索画面が表示されます。

・シリーズで検索
・出演者/監督で検索
・前回実行結果表示

②実行

上記①の検索実行ボタンをタップすると新作検索が実行されます。
実行中は、通知、DVDラック画面、新作検索画面に「新作検索実行中です。」と表示されます。
通知か、新作検索画面の「キャンセル」で中止できます。

③完了

新作検索が完了すると、通知、DVDラック画面、新作検索画面、ログ画面に「新作検索が完了しました。〇件の新作が見つかりました。」と表示されます。

④結果表示

新作検索の結果は、以下のいずれかで表示できます。
・完了の通知をタップ
・DVDラック画面の完了のメッセージ横のアイコンをタップ
・上記の「前回実行表示」ボタンをタップ
・新作検索画面で実行した後、新作検索画面を閉じずに完了したときに表示される結果表示確認メッセージでOKをタップ

検索結果は、6.検索結果と同じです。

⑤設定

新作検索画面の設定アイコンをタップすると設定画面が表示されます。
DVDラック画面のメニューの設定の「新作検索」からも表示できます。

自動新作検索(周期的に自動で新作検索)を実行させたい場合も、設定画面で設定してください。

詳細は、こちらを参照してください。


△目次に戻る


画面の下部に表示されるバナー広告を非表示にすることができます。

①動画広告視聴

DVDラック画面のメニューの「動画広告視聴」をクリックすると以下の画面が表示されます。




「動画をロード中です。しばらくお待ちください。」と表示されている間は、「視聴する」がタップできませんので、しばらくお待ちください。
「動画をロード中です。しばらくお待ちください。」が消えましたら、「視聴する」をタップしてください。
動画を途中で停止しますと、広告非表示期間の報酬は得られません。


上の画像のように広告非表示期間が表示されます。続けて視聴した場合、広告非表示期間に加算されます。
広告非表示期間は、実際に広告を非表示にする時間になります。本アプリを表示していない時間は含みません。


9.設定

①一般

(ア)アイテム編集

・出演者/監督編集、シリーズ編集、ジャンル編集、棚コード編集、タグ編集
登録されている出演者/監督、シリーズ、ジャンル、棚コード、タグが一覧で表示され、編集ができます。

(イ)使用設定

感想、お気に入り、ジャンル、棚コード、タグを使用するか設定します。

使用しないに設定した場合、各画面で表示されません。

(ウ)表示設定 

・タブ表示位置調整
DVDラック画面のタブ(横並びのグループ)の順番や表示、非表示が設定できます。

・購入予定のDVDを購入予定以外にも表示する
DVDラック画面の全てのタブに購入予定のDVDを表示します。

・DVDラック画面と検索結果画面の画質
DVDラック画面と検索結果画面の画質を設定します。

・DVDラック画面の文字サイズ
DVDラック画面の文字サイズを変更できます。

・自作画面サイズ
画像を「カメラで撮影」、または、「アルバムから選択」を行う場合のサイズを変更できます。

・テーマ
ライト、ダーク、システムのデフォルトから選択できます。

② 新作検索

(ア)新作検索

・結果の通知を表示
結果の通知を表示するかどうかを設定します。

通知のありなしに関わらず、結果はログ画面にも表示されます。
Android13以降では通知の権限の許可が必要になります。
メニューの「本アプリの通知の設定」から表示されるAndroidの設定でも通知の表示切替ができます。

・DVDラック画面に結果を表示
結果をDVDラック画面に表示するかどうかを設定します。結果の通知が表示できない場合は強制的に表示されます。

・完結を含めない
シリーズで検索する場合に、完結が設定されているシリーズは検索対象から外します。
通信が節約されます。

・新作検索範囲
発売日が指定した範囲のみを対象とします。

・購入予定は含めない
購入予定だけにあるシリーズ、出演者/監督を検索対象にするかどうかを設定します。

(イ)自動新作検索

バッテリーが少ないときに実行してしまわないように、充電中でバッテリーが20%以上のときに実行します。

・種類
シリーズで検索するか出演者/監督で検索するか設定します。

・周期
自動新作検索を実施する周期を設定します。

・時間
自動新作検索を実施する時刻を設定します。

・次回実行
次回に自動新作検索を実施する予定時刻を表示します。

③キャッシュ

DVDラック画面、入力画面の画像表示でキャッシュを使用するかどうか設定します。

キャッシュを使用しない場合、画像はその都度ダウンロードすることになりますが、ディスク容量は消費しません。ネットが接続してない場合は画像が表示できないことになります。通信量は増えます。

キャッシュを使用する場合、画像は最初の一回のみダウンロードし、キャッシュエリアに保存するため、ディスク容量を消費します。通信量を節約できます。


△目次に戻る


④バックアップ

トップの画面のメニューの「設定」の「バックアップ」をタップすると、本画面が表示されます。
後述(ア)~(エ)は、Google Driveに、(オ)、(カ)はスマホ内にバックアップします。

(ア)Googleアカウント、権限

バックアップ機能を使用するには準備する必要があります。
Googleアカウントの「設定」ボタンをタップして、アカウントの選択を行ってください。
次に、権限が許可されていない場合は、「許可」ボタンをタップして、「Google Drive上の特定のファイルのみの参照等」の許可を行ってください。
アカウントを変えたい場合は、Googleアカウントの「クリア」をタップしてから、再度、設定を行ってください。

(イ)バックアップ実行

バックアップを実行します。
本画面内の「直近のバックアップ結果/状態」に結果が表示されます。
また、「実行終了を通知」で、通知の表示切替ができます。

通知のありなしに関わらず、結果はログ画面にも表示されます。
Android13以降では通知の権限の許可が必要になります。
メニューの「本アプリの通知の設定」から表示されるAndroidの設定でも通知の表示切替ができます。

(ウ)自動バックアップ設定/解除

自動バックアップを設定すると、毎日、指定した時刻に変更の有無をチェックし、変更があれば、バックアップを行います。

「実行終了を通知」については(イ)と同じです。

バッテリーが少ないときに実行してしまわないように、充電中でバッテリーが20%以上のときに実行します。

(エ)復元実行

本ボタンをタップすると、バックアップ一覧が表示されますので、復元したいデータを選択してください。なお、現在のデータは消えますので、ご注意ください。

(オ)端末内バックアップ実行

Google Driveではなくスマホ内にバックアップを行います。
後述の【補足】のために追加した機能です。

(カ)端末内復元実行

Google Driveではなくスマホ内のバックアップファイルから復元します。
後述の【補足】のために追加した機能です。


【補足】以前のバージョンで保存していたバックアップで復元したい場合
Google Drive側の仕様変更により、以前のバージョンで保存していたバックアップが本アプリからは見えなくなりました。それらのバックアップで復元する方法です。

(1)「Googleドライブ」アプリでバックアップをスマホ内にダウンロードします。
マイドライブの「com.bnbnapp.dvdrack」フォルダ内の日付フォルダ(例:「2021/01/01 03:00:15」)内の「backup.zip」です。
(2)本アプリのバックアップの「端末内復元実行」ボタンをタップします。
(3)前述の①でダウンロードした「backup.zip」を選択します。



⑤このアプリについて

DVDラックのバージョンなどを記載しています。

2017年12月2日土曜日

logcatが表示されない!?デバッグでEditTextのあるActivity表示で落ちる!?


思いがけず、タブレットも開発に使用できるようになりました。

d tab(HUAWEIのd-01J)。

しばらくは、今まで通り、スマホで開発し、Releaseビルド後にタブレットで動作確認をしていました。

問題なく使えていたのですが、厄介なカメラ機能を修正したので、タブレットでデバッグを行ったところ、あるActivityに遷移すると落ちました。

logcatを見てみたら、エラーもデバッグログも出力されていません。

ここから、結構、はまりました。

とりあえず、logcatから解決方法を書きます。

HUAWEIは、Androidの隠しコマンドでログを出力するように設定する必要があるようです。(HUAWEI全機種なのかは、分かりません。)

電話アプリ、又は、標準の電卓アプリを使用します。持っているタブレットは電話機能がないので、電卓を使いました。

1)電話アプリの場合は、「*#*#2846579#*#*」
、電卓アプリの場合は、「()()2846579()()=」と入力します。

2)「ProjectMenu」という画面が起動しますので、「1.Background Settings」をクリックします。

3)「3.LOG Settings」をクリックします。

4)「AP Log」をチェックします。

これで、logcatが出力されるようになりました。

続いて、落ちる件について、ログが出力されるようになったので、調査開始です。


InputConnectionでキャストできないと出ているので、EditText付近だとは分かるのですが、EventProfiler.javaのソースをネットで探し出しても、330行目なんてありません。

しかし、このExceptionをネットで検索すると解決方法ありました。

https://stackoverflow.com/questions/47440771/focus-on-edittext-result-in-crash

このページにあるように、Android Studioのメニュー「Run」の 「Edit Configurations」をクリックし、左の「Android App - app」を選択して、右の「Profiling」の「Enable Advanced profiling」のチェックを外します。

これで、実行すると落ちなくなりました。

オフにした機能は以下に詳細が書かれています。

Measure App Performance with Android Profiler

Android Studio 3.0から追加された機能みたいです。

しかし、タブレットでカメラが落ちるので、まだまだかかりそうです・・・。


2017年10月31日火曜日

メモリリーク その3 AdMob広告の表示で

こんにちは。



AdMobの広告を表示させるために、AdMobの以下のガイドに沿ってソースを修正しました。

https://developers.google.com/admob/android/quick-start?hl=ja


ガイドより↓

しかし、これだとメモリリークを起こします。


以前にも書きましたが、ActivityのContextを渡し、そのContextを保持されてしまうとActivityを解放できません。

ApplicationContextを渡せば、Activityはメモリリークを起こしません。

また、MobileAds.initializeは、一回だけで良いと上記のガイドに記述があるので、ApplicationのonCreateで呼び出すようにしました。

なぜなら、MainActivityのonCreateは、一回だけ呼び出されるとは限りません。起動時以外にも、画面を回転させると呼び出されます。

以下のように修正しました。



以上です。


2017年10月16日月曜日

画面タップが効かなくなったスマホ

こんばんは。

以前使っていたスマホの画面をタップしても何も反応しなくなってしまい、もうだめかと放置していました。

しかし、公開しているアプリは、古いAndroidも対応しているため、どうしても動作確認がしたくなり、どうにか動かせないか調べました。

まず分かったのが、パソコンとUSB接続して、パソコン上であるアプリを動かすと、スマホの画面がパソコンの画面に表示され、操作できるというものがあるということです。
ただし、スマホをデバッグモードにしてあることが前提です。

Android Control

しかし、スマホの画面は、パソコンに表示されますが、クリックしても反応しません。

上記に加え、以下のHPで、Version1.2betaを落として、やっと反応しました。

http://droid-at-screen.org/download.html


ここで、調子に乗って、やりたかった初期化をしました。

すると、初期化が終わった後起動すると、Android Controlは、使えなくなりました。

デバッグモードも解除されますから、当たり前でした。


そこで、別の方法を探してみると、衝撃的なことを知りました!

スマホにマウスを繋げば、操作できるとのことです!

知らなかった・・・。

早速、ヨドバシカメラに行き、以下の変換アダプタを542円で買いました。




帰宅して、スマホにマウスを繋いでみると・・・完璧に動く!

最初から、こうすればよかったです。

2017年10月12日木曜日

メモリリーク その2 AlertDialog

こんばんは。

今回もメモリリークについてです。

AlertDialogで、メモリリークが発生していました。

そもそも、使い方を誤っていました。

以下のようにすれば、簡単にメッセージダイアログが表示できますが、これではいけません。



画面を回転した場合などに、メモリリークが発生します。

Androidデベロッパーのページにも書かれていました。

https://developer.android.com/guide/topics/ui/dialogs.html?hl=ja

DialogFragmentを使ってダイアログを管理すると、ライフサイクルイベントが正しく処理されると書かれています。

個人のブログで、AlertDialogの使い方を見てコーディングしたのですが、ある程度コーディングした後に、上記のページを見つけました。

そして、実際にメモリリークするか調査してみると、しっかりとメモリリークしていました。

全てのAlertDialogを修正とテストするのは大変でした。

それから、ネットで検索する場合は、Androidデベロッパーのページや、リファレンスを最初に読むようにしています。

DialogFragmentを使ったAlertDialogのコーディング方法は、上記のページを参考にしてください。


2017年10月11日水曜日

メモリリーク その1

こんばんは。

忙しくて、なかなか更新できませんでした。

前回メモリリークを調査した結果、検出した内容です。

今回は、単純なコーディングミスです。

Staticな変数に、Contextを渡したクラスのインスタンスを保持しているのですが、ContextにActivityをキャストしたContextを渡していました。


ソースで説明します。


ToastクラスのインスタンスをContextを渡して作成し、Staticな変数で保持しています。
上記のshowToastを以下のように呼び出していたのです。


上記の例は、Activityで呼び出していたので、thisは、Activityです。

Contextは、ApplicationかActivityをと書かれていますので、以下のように変更したら、メモリリークはなくなりました。


Staticな変数は、要注意です。

2017年9月3日日曜日

メモリリーク調査


こんばんは。お久しぶりです。

ブログは更新していませんでしたが、開発は行っています。


ふと、メモリリークはしていないのか気になって、調査してみることにしました。

確保された領域は、どこからも参照されなくなれば、GC(ガベージコレクション)でシステムが勝手に解放してくれます。

参照をなくした後にGCを強制的に行い、解放が行われているかチェックすれば、メモリリークを見つけられます。


Android Studioでデバッグ中に、Android Monitorで、一連のチェックが行えます。




上のAndroid Monitorの赤で囲った部分の一番左のアイコンをクリックすると、GCが行われます。

真ん中のアイコンをクリックすると、メモリの状態が記録されます。


あるいは、Leakcanaryというライブラリを使用してもチェックできます。

Leakcanaryは、https://github.com/square/leakcanaryにあります。

やり方も記載されていますが、一点、はまったことがあります。

全く、メモリリークが検出されないのです。メモリリークが元々なかったのかと一瞬思いましたが、チェック自体が走った形跡もなかったので、ライブラリのソースを追ってみました。

なんと、デバッグでアタッチしている場合は、チェックしないようになっていました。

私、USBで繋いで、ばりばりデバッグアタッチしていました。

なので、スマホにデバッグ版をインストールした状態で、アイコンをタップしてアプリを単体で動かしたところ、メモリリークが無事?、検出されました。

Activityを閉じたときにチェックしています。


メモリリークの内容は、後日書こうと思います。

2017年4月17日月曜日

Google Play Developer Consoleでタブレット未対応となってしまう

こんにちは。

本棚、CDラック、DVDラックを公開してきましたが、DVDラックだけ違反となり、一時アプリが非公開になってしまいました。

なりすましと知的財産権の侵害にひっかってしまったようです。

Google Playに記載したスクリーンショットに、適当なDVD情報を取り込んだ画面が写っているのがまずかったようです。

急遽、実在するDVD情報は削除したスクリーンショットを取り、公開しました。

違反はなくなったのですが、今度は、タブレット未対応になってしまいました。


Developer Consoleで、最適化のヒントを開くと以下の項目が表示されるようになったのです。

「タブレット用のアプリを設計する

製品版 APK は次の条件を満たす必要があります:

レイアウトにはタブレットで利用可能なスペースを使用すること。 」


その時載せていたスクリーンショットは以下です。




どうやら、空いたスペースが多すぎて、タブレット未対応と判断されたようです。

結局、画面全体にデータが表示されるように、DVD情報を手入力しました。





ようやく、タブレット対応済みとなりました。

2017年4月6日木曜日

CDラックのヘルプ


公開中のCDラックのヘルプを記載します。


0.目次

  1. CDラック画面

  2. バーコード読み込み

  3. 検索画面

  4. 入力画面

  5. 画像拡大画面

  6. Web検索画面

  7. 検索結果

  8. 新譜検索

  9. 広告非表示

  10. 設定



1.CDラック画面

  


①メニュー


メニュー 説明
表示切替
表示切替の選択画面が表示され、選択すると、CDの一覧(④)の表示形式が変わります。
画面を開き直したとき、前回選択した列数で表示されます。
検索
登録済みのCDの検索画面を表示します。
その他
その他のメニュー(新譜検索以降のメニュー)を表示します。
新譜検索 新譜検索の実施、結果表示ができます。
設定 設定画面を表示します。
ヘルプ 本ヘルプを表示します。
お知らせと更新情報 お知らせと更新情報を表示します。
動画広告視聴 動画広告視聴ができます。視聴すると広告が一定時間表示されなくなります。残っている広告非表示期間を確認できます。
ログ表示 新譜検索とバックアップのログが表示されます。

②タブ

登録済みのCDの一覧を以下のグループ分けで表示します。
設定の「一般」-「タブ表示位置調整」で、タブを表示/非表示設定、タブの順序設定ができます

タブ説明
全て全てのCDを表示します。
購入予定入力画面で購入予定としたCDを表示します。購入予定のCDは、このタブにしか表示されません。
アーティスト名アーティスト名の一覧を表示します。
ジャンルジャンルの一覧を表示します。
棚コード棚コードの一覧を表示します。
タグタグの一覧を表示します。

③選択モードの切り替えと並び替え




(ア)選択モード切り替え

左端のチェックボックスで、選択モードに切り替えられます。選択モードで、複数選択して変更、または、削除ができます。

(イ)並び替え順序切り替えボタン

並び替え順序を変更します。▼が降順、▲が昇順です。
タップするたびに、▼→▲と変化します。

(ウ)並び替え項目切り替えボタン

並び替え項目を変更します。CDタイトルカナやアーティスト名カナ、発売日などで並び替えが行えます。タブによって項目は異なります。
タップするたびに、変化します。

(エ)並び替え項目選択ボタン

並び替え項目の選択画面を表示します。

(オ)件数

選択中のタブ(②) のCDやアーティスト名などの数を表示します。

④CDの一覧

選択中のタブのCDの一覧を表示します。メニュー(①)で表示方法変更や、③で並び替えができます。

⑤追加ボタン

CDを追加します。以下が選択できます。

選択肢説明
バーコードカメラ機能でバーコードからCDのJANを読み取り、WebからCD情報を取得します。
カメラ機能を使用する為、最初に権限の許可のメッセージが表示されます。
手入力CD情報を全て手入力します。
Web検索CDタイトル、アーティスト名、発売元、JANなどの検索条件を入力し、WebからCD情報を取得します。


⑥「アーティスト名」タブのアーティスト名




登録されているアーティスト名の一覧が表示されます。

⑦「アーティスト名」タブの除外

チェックをすると新譜検索で除外されます。

(新譜検索の通信量と時間が節約されます。)



△目次に戻る

2.バーコード読み込み


カメラ機能でバーコードからCDのJANコードを読み取り、WebからCD情報を取得します。
カメラ機能を使用する為、最初に権限の許可のメッセージが表示されます。

追加画面のバーコードボタンの横の設定アイコンをタップすると、読み取りモードが選択できます。最新モードを推奨しますが、上手く読み取れない場合は、従来モードの2つをお試しください。
また、「バーコード読み取りボタンを表示」をチェックすると、CDラック画面にバーコード読み取りボタンが常に表示されます。

①最新モード

バーコードを枠の赤い線に合わせてください。
左上のボタンをタップするとライトがつきます。

②従来モード、従来モード(旧カメラ)

JANコードが読み取れるまで、連続でオートフォーカスを行います。

右上のボタンをタップすると切り取りモードに切り替わります。
中央の切り取り枠の中に読み取りたいバーコードが映るようにしてください。


△目次に戻る

3.検索画面





登録済みのCDを検索できます。検索したい条件を設定して、CDラック画面に戻ると該当のCDだけが表示されます。検索中は、CDラック画面のメニューの検索アイコンが赤くなります。

検索中のCDラック画面のメニュー


①メニュー

・クリア 検索条件を初期状態に戻します。

②CDタイトル、曲目、商品説明文

入力した文字列を含むCDタイトル、曲目、商品説明文を検索します。

③ジャンル、棚コード、タグ、アーティスト名、お気に入り

選択、または、入力した文字列と一致するジャンル、棚コード、お気に入りを検索します。選択、または、入力した文字列を含むタグ、アーティスト名を検索します。
お気に入り以外は、入力欄で文字を入力できます。
選択ボタンで、選択することもできます。
選択ボタン

④非表示に設定したCDを表示

Web検索や新譜検索で、非表示に設定したCDだけを表示します。


△目次に戻る

4.入力画面




①メニュー


メニュー選択できる条件説明
保存せずに終了変更保存せずに画面を閉じます。変更の場合、閉じると自動で保存します。
保存新規追加CD情報を保存します。変更の場合、閉じると自動で保存します。
非表示Web検索結果、
新刊検索結果
CD情報を検索結果で非表示になるように設定します。
削除変更CD情報を削除します。
再取得
設定されている条件でWebからCD情報を取得します。
ただし、以下は変更しません。
購入予定、ジャンル、棚コード、タグ、お気に入り
アーティストWeb検索
アーティスト名を設定した状態でWeb検索画面を起動します。


②画像操作

画像表示部分をクリックすると、以下の画像操作ができます。
選択肢説明
拡大表示画像を拡大表示します。
カメラで撮影外部カメラを使用して撮影します。
※カメラの使用の権限許可と、写真を外部ストレージに一時的に保存するため、外部ストレージへのアクセスの権限許可のメッセージが表示されます。許可をすると操作ができます。
アルバムから選択既にアルバムに保存してある画像が選択できます。
※写真を外部ストレージに一時的に保存するため、外部ストレージへのアクセスの権限許可のメッセージが表示されます。許可をすると操作ができます。
編集外部ツールで画像の編集ができます。
※写真を外部ストレージに一時的に保存するため、外部ストレージへのアクセスの権限許可のメッセージが表示されます。許可をすると操作ができます。
削除表示されている画像を削除します。

③サイト

Amazon、楽天のこのCDのページを表示します。購入や予約ができます。

④購入予定

購入予定の場合、チェックを入れてください。
CDラック画面の「購入予定」タブだけに表示されます。





⑤ジャンル、棚コード、タグ

入力欄で自由に入力できます。選択ボタンクリックで、他のCDで入力済みの一覧が表示され、選択することもできます。使用しない場合は未入力でも構いません。
また、設定の「一般」-「ジャンルを使用する」、または、「棚コードを使用する」、「タグを使用する」で、表示/非表示の切り替えができます。

・ジャンル
例えば、「ロック」などを入力して下さい。
・棚コード
例えば、「CDラック1」や「レンタル」、「処分済み」などを入力して下さい。
・タグ
ご自由にお使いください。

⑥お気に入り

ご自由にご使用ください。
また、お気に入りは、設定の「一般」-「お気に入りを使用する」で、表示/非表示の切り替えができます。

△目次に戻る

5.画像拡大画面


画像を拡大表示できます。細かい文字などを確認する場合にご使用ください。

・指1本で移動できます。
・指2本で広げると拡大、狭めると縮小できます。
・指3本でクリックすると元のサイズに戻ります。


△目次に戻る

6.Web検索画面

CD情報をWeb検索します。



CDタイトル、アーティスト名、発売元、JANのいずれか、または複数を入力して、メニューの「実行」をクリックしてください。

取得ページ数を設定して、取得するページの限度を指定できます。1ページ当たり30件です。
例えば、「3」と設定すれば、最大で90件までしか取得しません。

実行中は、メニューの「実行」が「キャンセル」に変わります。実行をキャンセルしたい場合、クリックしてください。

メニューの「前回実行結果」で、前回の検索結果が表示されます。

△目次に戻る

7.検索結果

Web検索や新譜検索結果表示で、表示されます。

①選択モード切り替え

CDラック画面と同様に、一番上の左端のチェックボタンで選択モードに切り替えられます。選択モードで、複数選択して保存、または、非表示(非表示として保存)ができます。
※非表示は、Web検索や新譜検索で今後表示されないようになります。
非表示にしたCDは、3.検索画面の⑤「非表示に設定したCDを表示」で、表示することができます。

②CDをクリック

CDをクリックすると、入力画面が表示されます。入力画面でも「保存」、「非表示」ができます。


△目次に戻る

8.新譜検索

検索を実行すると、除外以外のアーティストの一番新しい発売日以降に発売されたCDがないか検索します。

①新譜検索画面表示

CDラック画面のメニュー「新譜検索」で、以下のボタンがある新譜検索画面が表示されます。

選択肢説明
検索実行新譜検索を実行します。
前回実行表示検索結果を表示します。

②実行

上記①の検索実行ボタンをタップすると新譜検索が実行されます。
実行中は、通知、CDラック画面、新譜検索画面に「新譜検索実行中です。」と表示されます。
通知か、新譜検索画面の「キャンセル」で中止できます。

③完了

新譜検索が完了すると、通知、CDラック画面、新譜検索画面、ログ画面に「新譜検索が完了しました。〇件の新譜が見つかりました。」と表示されます。

④結果表示

新譜検索の結果は、以下のいずれかで表示できます。
・完了の通知をタップ
・CDラック画面の完了のメッセージ横のアイコンをタップ
・上記の「前回実行表示」ボタンをタップ
・新譜検索画面で実行した後、新譜検索画面を閉じずに完了したときに表示される結果表示確認メッセージでOKをタップ

検索結果は、7.検索結果と同じです。

⑤設定

新譜検索画面の設定アイコンをタップすると設定画面が表示されます。
CDラック画面のメニューの設定の「新譜検索」からも表示できます。

自動新譜検索(周期的に自動で新譜検索)を実行させたい場合も、設定画面で設定してください。

詳細は、こちらを参照してください。



△目次に戻る


画面の下部に表示されるバナー広告を非表示にすることができます。

①動画広告視聴

CDラック画面のメニューの「動画広告視聴」をクリックすると以下の画面が表示されます。




「動画をロード中です。しばらくお待ちください。」と表示されている間は、「視聴する」がタップできませんので、しばらくお待ちください。
「動画をロード中です。しばらくお待ちください。」が消えましたら、「視聴する」をタップしてください。
動画を途中で停止しますと、広告非表示期間の報酬は得られません。


上の画像のように広告非表示期間が表示されます。続けて視聴した場合、広告非表示期間に加算されます。
広告非表示期間は、実際に広告を非表示にする時間になります。本アプリを表示していない時間は含みません。


②定期購入


定期購入すると広告が非表示になります。


△目次に戻る


10.設定

①一般

(ア)アイテム編集

・ジャンル編集、棚コード編集、タグ編集
登録されているジャンル、棚コード、タグが一覧で表示され、編集ができます。

(イ)使用設定

お気に入り、ジャンル、棚コード、タグを使用するか設定します。

使用しないに設定した場合、各画面で表示されません。

(ウ)表示設定 

・タブ表示位置調整
CDラック画面のタブ(横並びのグループ)の順番や表示、非表示が設定できます。

・CDラック画面と検索結果画面の画質
CDラック画面と検索結果画面の画質を設定します。

・CDラック画面の文字サイズ
CDラック画面の文字サイズを変更できます。

・自作画面サイズ
画像を「カメラで撮影」、または、「アルバムから選択」を行う場合のサイズを変更できます。

・テーマ
ライト、ダーク、システムのデフォルトから選択できます。

② 新譜検索

(ア)新譜検索

・結果の通知を表示
結果の通知を表示するかどうかを設定します。

通知のありなしに関わらず、結果はログ画面にも表示されます。
Android13以降では通知の権限の許可が必要になります。
メニューの「本アプリの通知の設定」から表示されるAndroidの設定でも通知の表示切替ができます。

・CDラック画面に結果を表示
結果をCDラック画面に表示するかどうかを設定します。結果の通知が表示できない場合は強制的に表示されます。

・新譜検索範囲
発売日が指定した範囲のみを対象とします。

・購入予定は含めない
購入予定だけにあるアーティストを検索対象にするかどうかを設定します。

(イ)自動新譜検索

バッテリーが少ないときに実行してしまわないように、充電中でバッテリーが20%以上のときに実行します。

・種類
「設定する」か、「設定しない」を設定します。

・周期
自動新譜検索を実施する周期を設定します。

・時間
自動新譜検索を実施する時刻を設定します。

・次回実行
次回に自動新譜検索を実施する予定時刻を表示します。

③キャッシュ

CDラック画面、入力画面の画像表示でキャッシュを使用するかどうか設定します。

キャッシュを使用しない場合、画像はその都度ダウンロードすることになりますが、ディスク容量は消費しません。ネットが接続してない場合は画像が表示できないことになります。通信量は増えます。

キャッシュを使用する場合、画像は最初の一回のみダウンロードし、キャッシュエリアに保存するため、ディスク容量を消費します。通信量を節約できます。


△目次に戻る

④バックアップ

トップの画面のメニューの「設定」の「バックアップ」をタップすると、本画面が表示されます。
後述(ア)~(エ)は、Google Driveに、(オ)、(カ)はスマホ内にバックアップします。

(ア)Googleアカウント、権限

バックアップ機能を使用するには準備する必要があります。
Googleアカウントの「設定」ボタンをタップして、アカウントの選択を行ってください。
次に、権限が許可されていない場合は、「許可」ボタンをタップして、「Google Drive上の特定のファイルのみの参照等」の許可を行ってください。
アカウントを変えたい場合は、Googleアカウントの「クリア」をタップしてから、再度、設定を行ってください。

(イ)バックアップ実行

バックアップを実行します。
本画面内の「直近のバックアップ結果/状態」に結果が表示されます。
また、「実行終了を通知」で、通知の表示切替ができます。

通知のありなしに関わらず、結果はログ画面にも表示されます。
Android13以降では通知の権限の許可が必要になります。
メニューの「本アプリの通知の設定」から表示されるAndroidの設定でも通知の表示切替ができます。

(ウ)自動バックアップ設定/解除

自動バックアップを設定すると、毎日、指定した時刻に変更の有無をチェックし、変更があれば、バックアップを行います。

「実行終了を通知」については(イ)と同じです。

バッテリーが少ないときに実行してしまわないように、充電中でバッテリーが20%以上のときに実行します。

(エ)復元実行

本ボタンをタップすると、バックアップ一覧が表示されますので、復元したいデータを選択してください。なお、現在のデータは消えますので、ご注意ください。

(オ)端末内バックアップ実行

Google Driveではなくスマホ内にバックアップを行います。
後述の【補足】のために追加した機能です。

(カ)端末内復元実行

Google Driveではなくスマホ内のバックアップファイルから復元します。
後述の【補足】のために追加した機能です。


【補足】以前のバージョンで保存していたバックアップで復元したい場合
Google Drive側の仕様変更により、以前のバージョンで保存していたバックアップが本アプリからは見えなくなりました。それらのバックアップで復元する方法です。

(1)「Googleドライブ」アプリでバックアップをスマホ内にダウンロードします。
マイドライブの「com.bnbnapp.cdrack」フォルダ内の日付フォルダ(例:「2021/01/01 03:00:15」)内の「backup.zip」です。
(2)本アプリのバックアップの「端末内復元実行」ボタンをタップします。
(3)前述の①でダウンロードした「backup.zip」を選択します。

⑤定期購入

(ア)定期購入


「購入する」をタップすると、Google Playの定期購入の画面が表示されます。
最初に、無料試用期間が7日間あります。その後、1ヶ月100円となります。

特典は以下となります。
(1)全ての広告が非表示になります。

(イ)定期購入解約

解約はアプリからはできないため、Google Playから行います。
「解約する」をタップすると、Google Playの定期購入のページが表示されます。

「CDラック」をタップして、「定期購入を解約」をタップすれば解約できます。

注意:アプリをアンインストールしても定期購入は解約されません。

(ウ)注文IDコピー

定期購入すると、注文IDが発行されます。
Googleからメールで注文IDが通知されるほか、こちらでも確認できます。
お問い合わせする場合などに、コピーしてメールに貼り付けるなどにご利用ください。




⑥CSV入出力

全データを端末内にCSV出力、または、端末内からCSV入力します。
CSV入力は、現在のデータは全て削除されます。あらかじめバックアップを行ってください。
CSV出入力は補助的な上級者向けの機能となります。
外部アプリの仕様に合わせて修正することは致しません。
また、修正したCSVファイルの入力によるエラー調査も致しません。

(ア)CSV出力

CSV出力ボタンをタップし、以下のファイルの出力先を順番に指定します。
・CD情報(cd.csv)
・タグ情報(tag.csv)
・画像の圧縮ファイル(image.zip)

(イ)CSV入力

CSV入力ボタンをタップし、以下の入力ファイルを順番に指定します。
・CD情報(cd.csv)
・タグ情報(tag.csv)
・画像の圧縮ファイル(image.zip)


△目次に戻る


⑦このアプリについて

CDラックのバージョンなどを記載しています。



2017年4月5日水曜日

Unitテスト 変数の値検証

こんにちは。

今日は、Unitテストで、内部変数の値の検証の仕方を書きます。



まず、対象のActivityをモックとして定義します。


例えば、MainActivityのprivateなローカル変数「mPositionAll」に初期値を設定したい場合は、以下のようにします。


そして、変数の値を検証したい場合は、以下のようにします。


以上です。

2017年4月4日火曜日

「DVDラック」公開

こんにちは。

新しく「DVDラック」を公開しました。


本棚」や「CDラック」と似た操作で、DVDやブルーレイを管理できます。


出演者と監督は、必ず複数になると思うので、ちょっと工夫しました。

また、DVD Boxなどで、どこまで観たか記録できるようにしました。






レンタルして観た場合にも、記録できますので、一度観たものを間違って借りることもなくなります。

是非、使ってみてください。

2017年3月25日土曜日

ぶんぶんの花粉症対策

こんばんは。

前回、腹痛改善について書きましたが、今回は、花粉症対策に役立っているものを紹介します。

外出するときは、マスクをするのは当然ですが、それでも、鼻水は出ます。

一番、良いなと思うものは、点鼻薬です。

私は去年買った「グローα AG 点鼻薬」を今年も使っています。

鼻が出てきたら、これを両方の鼻の穴に突っ込んで、シュッシュッとします。

ほんのちょっとだけ、薬剤の液体も加わって、じゅるじゅるしますが、次第に止まります。

持ち運びにも邪魔になりません。

仕事中に自分の席でシュッシュッとしていました。

アマゾンや楽天で検索してみましたが、ヒットしませんでした。

代わりに、アレルギー点鼻薬で検索した結果を載せておきます。



また、翌日、花粉が飛びまくるなというときは、前日の寝る前に、「アレジオン」を飲みます。

その日に飲む薬は眠くなってしまいますよね。

個人差があるかもしれませんが、「アレジオン」は、前日に飲むので、私は、眠くなりませんでした。

↓アレジオンです。





また、寝ているときに、鼻水がひどい人は、寝る前に鼻うがいするといいです。

鼻うがいの液も売っています。



私は、鼻うがいが、苦手で大嫌いなので、やりませんが・・・。


鼻うがい以外の対策で、今年も乗り切ります!

花粉症でお困りの方で、上記の対策をしたことない方、お試しあれ!


以上です!