2017年2月26日日曜日

プログラムソースの表示について

今回は、bloggerでのプログラムソースの表示についてです。

ブログ開設当初から、「SyntaxHighlighter」を使用させて頂いていましたが、スマホで見ると表示されていませんでした。
HTMLについて詳しくないので、とりあえず、「テンプレート」 のモバイルの設定で、「PCテンプレートを表示する」を選択すると表示されるので、その設定にしていました。しかし、PC用の表示なので、見づらいです。

しかし、先ほど、解決しました。

「SyntaxHighlighter」のスクリプトを「レイアウト」の「cross-column」にガジェットを追加して、記載していました。
これをやめて、「テンプレート」 の「HTMLの編集」で<head>の下に記載したところ、スマホでも表示されました。
モバイルの設定は、モバイルテンプレートのカスタムです。

やっと、うまく表示されました。



モバイルでは、「cross-column」は機能しないようですね。



<head>の下に記載したスクリプトは以下です。shBrush*は、使用するものだけにします。


プログラムソースを記載するときは、以下のようにします。


パーミッションについて

こんばんは。

SDKバージョン23以上では、アプリの実行時に、パーミッションをチェックする必要があります。




マニフェストファイルへの追加だけではいけません。

例として、GET_ACCOUNTSパーミッションの場合を見ていきます。


まずは、マニフェストファイルです。



そして、実行時です。ある画面を表示するタイミングのonCreateでチェックします。許可されなかった場合は、画面を閉じます。



「if (Build.VERSION.SDK_INT >= 23) {」は、これをいれないとエラーとなります。ちょっと不細工ですね。
「onRequestPermissionsResult」で不許可の場合は、メッセージを表示して、「finish();」で画面を閉じています。

永続的に不許可の場合も、「requestPermissions」してやって、「onRequestPermissionsResult」でメッセージ表示と画面終了を行っています。


2017年2月25日土曜日

アプリ「CDラック」公開

こんにちは。

アプリ「本棚」の姉妹品として、アプリ「CDラック」を公開しました。

本棚をもとに作成しましたので、使い方は同じです。

是非使って頂きたいです。




2017年2月21日火曜日

本棚のヘルプ


公開中の本棚のヘルプを記載します。


0.目次

  1. 本棚画面

  2. バーコード読み込み

  3. 検索画面

  4. 入力画面

  5. 各編集画面

  6. 画像拡大画面

  7. Web検索画面

  8. 検索結果

  9. 新刊検索

  10. 広告非表示

  11. 設定

  12. 定期購入

  13. 統計

  14. その他



1.本棚画面




1-1.メニュー


メニュー 説明
表示切替
表示切替の選択画面が表示され、選択すると、本の一覧の表示形式が変わります。表示形式は、保持されます。
画面の横幅によって、選択できる表示形式は異なります。縦向きのスマホの表示形式は、1列、2列、画像のみ3列、画像のみ4列、画像なし1列、画像なし2列です。
検索
登録済みの本の検索画面を表示します。
その他
表示しきれないその他のメニューを表示します。
新刊検索 新刊検索の実施、結果表示ができます。
設定 設定画面を表示します。
ヘルプ 本ヘルプを表示します。
お知らせと更新情報 お知らせと更新情報を表示します。
動画広告視聴 動画広告視聴ができます。視聴すると広告が一定時間表示されなくなります。残っている広告非表示期間を確認できます。
定期購入について 定期購入の説明が表示され、購入と解約ができます。
ログ表示 新刊検索、バックアップ、カレンダー連携の実行結果のログを表示します。
統計 期間ごと、項目ごとの統計を表示します。

1-2.タブ

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

タブ 説明
全て 全ての本を表示します。
購入予定 購入予定とした本を表示します。
※購入予定の本はこのタブのみに表示されますが、他のタブにも表示したい場合は【設定】→【一般】で設定を変更してください。
既読 既読とした本を表示します。
未読 既読としていない本を表示します。
シリーズ 雑誌以外のシリーズ物の一覧を表示します。
シリーズ以外 シリーズ物以外の一覧を表示します。
著者 著者の一覧を表示します。
雑誌 雑誌のシリーズ物の一覧を表示します。
ジャンル ジャンルの一覧を表示します。
棚コード 棚コードの一覧を表示します。
タグ タグの一覧を表示します。
出版社 出版社の一覧を表示します。
購入年別 購入した年と合計金額の一覧を表示します。
※定期購入によりご利用になれます。


1-3.選択モード切り替えと並び替え




1-3-1.昇順/降順切り替え

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

1-3-2.並び替え項目切り替え

並び替え項目を変更します。タイトルカナや著者カナ、発売日などで並び替えが行えます。タブによって項目は異なります。
タップするたびに、変化します。
※表示されていないジャンルなどで並び替えすると本の一番下にジャンルが表示されます。

1-3-3.並び替え項目選択画面表示

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

・選択画面の「タイトルカナの代わりにシリーズカナを使用」について
チェックした場合、シリーズカナがあればシリーズカナを使用し、なければ、タイトルカナを使用します。チェックしない場合、タイトルカナのみを使用します。
楽天サービスのタイトルカナに、巻数の数字が入ったり入らなかったりしているため、タイトルカナで並び替えても、巻数の順に並びません。そのため、シリーズカナを併用する使用する機能があります。単純にタイトルカナで並び替えたい場合は、チェックを外してください。

1-3-4.本の件数

選択中のタブの本の件数を表示します。

1-3-5.選択モード切り替え

選択モードの切り替えを行います。選択モード中は、本をタップすると選択でき、もう一度タップすると選択を解除できます。選択した本を、まとめて変更か削除ができます。

1-4.本の一覧

選択中のタブの本の一覧を表示します。メニューの表示切替や、並び替えができます。

1-5.追加ボタン

本を追加します。以下の追加方法が選択できます。

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

1-6.「シリーズ」タブ




並び替え部分は、「1-3.選択モード切り替えと並び替え」とほぼ同じですが、「選択モード切り替え」がありません。
登録されている購入予定以外のシリーズの一覧が表示されます。

以下に、シリーズ一覧の1行を抜粋します。



シリーズ編集で「完結」と設定されたシリーズには「完」、「新刊検索から除外」と設定されたシリーズには「除」と表示されます。

シリーズをタップするとそのシリーズの本の一覧が表示されます。
シリーズを長押しするとシリーズ編集が表示されます。

1-7.「著者」タブ




並び替え部分は、「1-3.選択モード切り替えと並び替え」とほぼ同じですが、「選択モード切り替え」がありません。
登録されている購入予定以外の著者の一覧が表示されます。

以下に、著者一覧の1行を抜粋します。



お気に入りは、複数著者の場合、平均値が表示されます。
著者編集で「新刊検索から除外」と設定された著者には「除」と表示されます。

著者をタップするとその著者の本の一覧が表示されます。
著者を長押しすると著者編集が表示されます。


△目次に戻る


2.バーコード読み込み

カメラ機能でバーコードから本のISBN、または、雑誌のJANコードを読み取り、Webから本情報を取得します。
カメラ機能を使用する為、最初に権限の許可のメッセージが表示されます。
追加画面のバーコードボタンの横の設定アイコンをタップすると、読み取りモードが選択できます。最新モードを推奨しますが、上手く読み取れない場合は、従来モードの2つをお試しください。
また、「バーコード読み取りボタンを表示」をチェックすると、本棚画面にバーコード読み取りボタンが常に表示されます。

2-1.最新モード

本のISBN、または、雑誌のJANコードが読み取ります。
本の場合、大抵、裏に2つバーコードがあり、上のバーコードがISBNです。
上のバーコードを枠の赤い線に合わせてください。
左上のボタンをタップするとライトがつきます。



2-2.従来モード、従来モード(旧カメラ)

本のISBN、または、雑誌のJANコードが読み取れるまで、連続でオートフォーカスを行います。
本の場合、大抵、裏に2つバーコードがあり、上のバーコードがISBNです。
上のバーコードが入っていますと、読み取ることができます。上下2つ写っていてもISBNだけを読み取ります。

読み取り例

右上のボタンをタップすると切り取りモードに切り替わります。
(下の画像は古いため右下にボタンがあります。)
中央の切り取り枠の中に読み取りたいバーコードが来るようにしてください。

縦向きの切り取りモード読み取り例

横向きの切り取りモード読み取り例


△目次に戻る


3.検索画面




登録済みの本を検索できます。検索したい条件を設定して、本棚画面に戻ると該当の本だけが表示されます。メニューのクリアで検索条件を初期状態に戻します。

完結、除外は、新刊検索関連の項目であり、シリーズ、雑誌タブ、または、著者タブのみを検索します。

非表示に設定した本を表示を選択すると、Web検索や新刊検索で、非表示に設定した本だけを表示します。

検索中の本棚画面は、以下のようになります。
検索状態は、本棚を終了して、再度起動した場合も保持しています。



△目次に戻る


4.入力画面




4-1.メニュー

メニュー 選択できる条件 説明
保存せずに終了 変更 保存せずに画面を閉じます。変更の場合、閉じると自動で保存します。
保存 新規追加 本情報を保存します。変更の場合、閉じると自動で保存します。
非表示 Web検索結果、新刊検索結果 本情報を検索結果で非表示になるように設定します。
削除 変更 本情報を削除します。
再取得 設定されている条件でWebから本情報を取得します。
再取得をタップすると取得するサービス選択画面が表示されます。
取得すると、反映項目選択画面が表示されるので、反映したい項目を選択してください。
シリーズWeb検索 タイトル(シリーズ)、著者を設定した状態でWeb検索画面を起動します。
著者Web検索 著者を設定した状態でWeb検索画面を起動します。


4-2.購入サイトを開く

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

4-3.著者

著者をタップすると著者設定画面が表示されます。「5-2.著者設定画面」を参照してください。

4-4.シリーズ

シリーズをタップするとシリーズ編集画面が表示されます。「5-1.シリーズ編集画面」を参照してください。

4-5.購入予定

購入予定の場合、チェックを入れてください。
本棚画面の「購入予定」タブだけに表示されます。
また、購入予定の右に、購入日を設定できます。

4-6.既読

読み終わった場合、チェックを入れてください。
チェックを入れると自動で読了日に今日を設定します。
また、既読の右に、読了日を設定できます。

4-7.画像操作

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

4-8.ジャンル、棚コード、タグ

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

・ジャンル
例えば、「小説」、「漫画」などを入力して下さい。
・棚コード
例えば、「本棚」、「図書館」、「レンタル」、「処分済み」などを入力して下さい。
・タグ
ご自由にお使いください。

4-9.感想、お気に入り

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


△目次に戻る


5.各編集画面


5-1.シリーズ編集画面

以下の操作でシリーズ編集画面が表示されます。
・シリーズ一覧でシリーズを長押し
・個別シリーズの本情報一覧のメニューで「シリーズ編集」をタップ
・入力画面でシリーズをタップ



5-1-1.「自動作成」、「1.0とする」


ボタン 説明
自動作成 シリーズかシリーズではない、シリーズ、シリーズカナ、シリーズナンバーを自動で設定します。
1.0とする シリーズかシリーズではない、シリーズにタイトル、シリーズカナにタイトルカナ、シリーズナンバーに1.0を設定します。

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

5-1-2.「シリーズ」、「シリーズではない」

シリーズ、または、シリーズではないを選択します。

5-1-3.「完結」、「新刊検索から除外」

シリーズ物で、この本で完結している場合は、「完結」にチェックしてください。
本棚画面の「シリーズ」 タブで「完」と表示されます。
新刊検索の「シリーズで検索」で検索から除外されます。

完結していないけど、新刊検索から除外したい場合は、「新刊検索から除外」にチェックしてください。
本棚画面の「シリーズ」 タブで「除」と表示されます。
新刊検索の「シリーズで検索」で検索から除外されます。
新刊検索の通信量と時間が節約されます。

5-1-4.シリーズ、シリーズカナ

シリーズには、シリーズ物のタイトルから巻数を除いたものを入力します。
例えば、「ONE PIECE 109」→「ONE PIECE」となります。
シリーズカナは、本棚画面の並び替えで使用します。
自動作成などでは、タイトルカナを設定しています。
また、右側の選択ボタンで、既に登録済みのシリーズ一覧から選択することができます。

5-1-5.シリーズナンバー

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

5-1-6.シリーズ著者

シリーズが紐づいている著者が表示されます。この画面からは入力できません。
著者を変更したい場合は、本の入力画面の著者を変更してください。

5-1-7.シリーズ著者なし

著者なしのシリーズとしたい場合にチェックします。
シリーズ内で著者が異なる場合にチェックしてください。

5-1-8.シリーズお気に入り

シリーズのお気に入りを設定できます。
お気に入りをクリアしたい場合は右側の「×」をタップするか、「☆☆☆☆☆」上をタップしたまま左の外へドラッグしてください。

5-2.著者設定画面

以下の操作で著者設定画面が表示されます。
・著者一覧で著者を長押し
・個別著者の本情報一覧のメニューで「著者編集」をタップ
・入力画面で著者をタップ



5-2-1.著者、著者カナ

著者、著者カナを入力します。
著者カナは、本棚画面の並び替えで使用します。
また、右側の選択ボタンで、既に登録済みの著者一覧から選択することができます。

5-2-2.ボタン

ボタンの動作は以下となります。


著者は、1冊の本に複数設定できます。
「+」ボタンで一番下に新しい著者の欄を追加して、著者名等を入力します。
ゴミ箱ボタンで削除します。
「↑」「↓」ボタンで並び順を調整します。
※入力画面以外から起動した場合は、追加、削除などは出来ません。

5-2-3.著者お気に入り

著者のお気に入りを設定できます。
お気に入りをクリアしたい場合は右側の「×」をタップするか、「☆☆☆☆☆」上をタップしたまま左の外へドラッグしてください。

5-2-4.「新刊検索から除外」

「新刊検索から除外」にチェックを入れると新刊検索の「著者で検索」の実行時に除外されます。

5-2-5.「翻訳者」

「翻訳者」にチェックを入れると著者一覧で、翻訳者は表示されなくなります。
同一作者で異なる翻訳者の場合に、別々のグループにならないようにします。


△目次に戻る


6.画像拡大画面

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

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


△目次に戻る


7.Web検索画面




ISBNやタイトル、著者などを指定して、本情報をWeb検索します。
本にバーコードがない場合やバーコードが読み取れない場合などに使用してください。

7-1.メニュー

・実行
ISBNやタイトルなど入力した検索条件でWeb検索を実行します。

・キャンセル
Web検索を実行中にタップできます。実行をキャンセルします。

・クリア
入力した検索条件をクリアします。

・前回実行結果
前回の検索結果を表示します。

7-2.ISBN、タイトル、著者、出版社

タイトルは、選択ボタンで、登録済みのシリーズ一覧から選択できます。
著者、出版社も登録済みの一覧から選択できます。

7-3.書籍サイズ

・雑誌について
雑誌を検索したい場合は、「雑誌」を選択してください。
その場合、著者は無視されます。また、タイトル、出版社、ISBNのいずれかを入力しなければ検索できません。

7-4.並び替え

Web検索する並び順を指定します。Web検索結果画面の並び替えの「指定順」が相当します。

7-5.取得ページ数

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

7-6.セットを含むタイトル除外(楽天のみ)

楽天には、「〇〇セット」という本のセットがあります。
これらを検索対象としたくない場合に、「「セット」を含むタイトルを除外する」をチェックして検索してください。

7-7.その他

楽天で売れているランキングを検索することができます。
タイトル、著者、出版社、ISBNを空欄で、並び替えを「売れている」、取得ページ数を「1」として実行してください。30位までのランキングが表示されることになります。


△目次に戻る


8.検索結果

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



8-1.メニュー

・トップへ
本棚画面へ移動します。Web検索結果のみ表示されます。

8-2.並び替え

本の一覧の並び替えを行います。操作方法は、本棚画面と同じです。

8-3.選択モード切り替え

複数選択して、保存や非表示ができます。操作方法は、本棚画面と同じです。

8-4.本の一覧

本をタップすると、入力画面が表示されます。入力画面でも保存や非表示ができます。


△目次に戻る


9.新刊検索

新刊検索を実行すると、登録している本の一番新しい発売日以降に発売された本がないかWeb検索します。
新刊検索は、楽天サービスのみを使用します。

9-1.新刊検索画面

本棚画面のメニュー「新刊検索」で、以下の新刊検索画面が表示されます。



ボタン 説明
シリーズで検索 完結、除外以外のシリーズの新刊検索を実行します。
著者で検索 除外以外の著者の新刊検索を実行します。
シリーズと著者で検索 シリーズで検索後に著者で検索を実行します。
※定期購入によりご利用になれます。
前回実行結果表示 検索結果を表示します。

9-2.実行

上記①の3つの検索ボタンのいずれかをタップすると新刊検索が実行されます。
実行中は、通知、本棚画面、新刊検索画面に「新刊検索実行中です。」と表示されます。
通知か、新刊検索画面の「キャンセル」で中止できます。

9-3.完了

新刊検索が完了すると、通知、本棚画面、新刊検索画面、ログ画面に「新刊検索が完了しました。〇冊の新刊が見つかりました。」と表示されます。

9-4.結果表示

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

9-5.エラー

楽天サービスからエラーが返ってきたシリーズ、または、著者は、通知に「エラー:〇〇」と表示します。シリーズ、または、著者が誤っている場合は、修正してください。誤っていない場合は、除外、または、完結としてください。

9-6.設定

新刊検索画面の設定アイコンをタップすると設定画面が表示されます。
本棚画面のメニューの設定の「新刊検索」からも表示できます。
自動新刊検索(定期的に自動で新刊検索)を実行させたい場合も、設定画面で設定してください。
詳細は、こちらを参照してください。


△目次に戻る


全ての広告の画面の下部に表示されるバナー広告や本一覧内の広告、入力画面など終了時の全画面広告を非表示にすることができます。

10-1.動画広告視聴

本棚画面のメニューの「動画広告視聴」をタップすると、以下の画面が表示されます。



「動画をロード中です。しばらくお待ちください。」と表示されている間は、「視聴する」がタップできませんので、しばらくお待ちください。
「動画をロード中です。しばらくお待ちください。」が消えましたら、「視聴する」をタップしてください。
動画を途中で停止しますと、広告非表示期間の報酬は得られません。
上の画像のように広告非表示期間が表示されます。続けて視聴した場合、広告非表示期間に加算されます。
広告非表示期間は、実際に広告を非表示にする時間になります。本アプリを表示していない時間は含みません。

10-2.定期購入

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


△目次に戻る


11.設定


11-1.一般


11-1-1.アイテム編集


・著者編集

登録されている著者が一覧で表示され、編集ができます。
除外のみを表示したり、対象のみを表示することができます。また、全てを除外としたり、全てを対象とすることができます。

・シリーズ編集

登録されているシリーズが一覧で表示され、編集ができます。
完結のみを表示したり、未完のみを表示することができます。また、全てを完結としたり、全てを未完とすることができます。
除外のみを表示したり、対象のみを表示することができます。また、全てを除外としたり、全てを対象とすることができます。

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

11-1ー2.使用設定

感想、お気に入り、ジャンル、棚コード、タグを使用するか設定します。
項目を使用しないに設定した場合、各画面でその項目は表示されなくなります。

11-1-3.表示設定


・タブ表示位置調整

本棚画面のタブ(横並びのグループ)の順番や表示、非表示が設定できます。
タブの行をタップすると、タブの表示/非表示を切り替えられます。
タブの行をドラッグ(長押しして移動)して並び順を変更できます。

・「本棚画面の本一覧に発売日を表示する」、「本棚画面の本一覧に出版社を表示する」、「本棚画面の本一覧にお気に入りを表示する」
使用設定は完全に使用できなくなりますが、こちらは、本棚画面で表示しなくなるだけです。

・本棚画面と検索結果画面の画質
本棚画面と検索結果画面の画像の画質を設定します。

・本棚画面の文字サイズ
本棚画面の文字サイズを変更できます。

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

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

11-2. 新刊検索


11-2-1.新刊検索


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

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

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

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

・「セット」を含むタイトルを除外する
楽天にはシリーズ物などのセット販売をしています。
本チェックをいれると「セット」という文字列を含む本は検索結果に表示しません。

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

11-2-2.自動新刊検索

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

・種類
シリーズで検索するか著者で検索するか設定します。

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

・曜日
自動新刊検索を実施する曜日を設定します。

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

11-3.カレンダー連携

カレンダー連携を設定すると、購入予定の本を発売日にカレンダー登録します。
外部のカレンダーアプリ(例えば、Googleカレンダーなど)で購入予定の本の発売日が分かるようになります。

以下の「設定方法」で購入予定の本を全て登録し、その後は、購入予定で保存、または、購入予定を外して保存、購入予定の本を削除の操作の度に、カレンダー登録、または、削除を行います。

外部のカレンダーアプリに反映されるには、多少時間がかかります。ご了承ください。

・設定方法
1)(初回のみ)連絡先とカレンダーのアクセス権限許可のメッセージが表示されますので、許可をしてください。
※連絡先のアクセス権限はアカウントの選択を行うために必要となります。

2)「アカウント」をタップし、連携したいアカウントを選択してください。

3)「カレンダー名」をタップし、連携したいカレンダーを選択してください。
※アカウントのカレンダー(例:abc@gmail.com)がメインのカレンダーとなりますので、こちらを選択されると良いと思います。
※あるはずのカレンダーが選択画面に表示されない場合は、サーバと端末で同期が取れていない可能性があります。「同期」ボタンをタップして、5分以上経ってから再度ご確認ください。
※アカウントとカレンダー名を設定することによりカレンダー連携開始となります。ただし購入予定の本が既にある場合は、手順5)を実行してください。

4)必要ならば、「終日として登録」にチェックを入れてください。チェックなしの場合は0:00から24:00までの予定として登録されます。(本項記載時点でGoogleカレンダーではこれも終日と同じような扱いになるようです。)

5)必要ならば、「経過と終了の通知を表示」にチェックを入れてください。
通知のありなしに関わらず、結果はログ画面にも表示されます。
Android13以降では通知の権限の許可が必要になります。
メニューの「本アプリの通知の設定」から表示されるAndroidの設定でも通知の表示切替ができます。

6)「全て登録」をタップすると購入予定の本をカレンダーに登録します。
既に購入予定の本がある場合は「全て登録」をタップしてカレンダーに登録してください。
前述のように、カレンダー連携後は購入予定の本の操作により自動で登録、削除されます。

・連携済みで「終日として登録」のみを変更する方法
1)「終日として登録」のチェックを変更してください。

2)登録済みのカレンダーにも反映したい場合は「全て登録」をタップしてください。
今後のカレンダー登録にだけ反映されればよければ、タップする必要はありません。

11-4.キャッシュ

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

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

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

11-5.バックアップ

トップの画面のメニューの「設定」の「バックアップ」をタップすると、本画面が表示されます。
後述11-5-1~11-5-4は、Google Driveに、11-5-5、11-5-6はスマホ内にバックアップします。

11-5-1.Googleアカウント、権限

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

11-5-2.バックアップ実行

本画面内の「直近のバックアップ結果/状態」に結果が表示されます。
また、「実行終了を通知」で、通知の表示切替ができます。
通知のありなしに関わらず、結果はログ画面にも表示されます。
Android13以降では通知の権限の許可が必要になります。
メニューの「本アプリの通知の設定」から表示されるAndroidの設定でも通知の表示切替ができます。

11-5-3.自動バックアップ設定/解除

自動バックアップを設定すると、毎日、指定した時刻に変更の有無をチェックし、変更があれば、バックアップを行います。
「実行終了を通知」については11-5-2と同じです。
バッテリーが少ないときに実行してしまわないように、充電中でバッテリーが20%以上のときに実行します。

11-5-4.復元実行

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

11-5-5.端末内バックアップ実行

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

11-5-6.端末内復元実行

Google Driveではなくスマホ内のバックアップファイルから復元します。
後述の【補足】のために追加した機能です。
【補足】以前のバージョンで保存していたバックアップで復元したい場合
Google Drive側の仕様変更により、以前のバージョンで保存していたバックアップが本アプリからは見えなくなりました。それらのバックアップで復元する方法です。
(1)「Googleドライブ」アプリでバックアップをスマホ内にダウンロードします。
マイドライブの「com.bnbnapp.bookshelf」フォルダ内の日付フォルダ(例:「2021/01/01 03:00:15」)内の「backup.zip」です。
(2)本アプリのバックアップの「端末内復元実行」ボタンをタップします。
(3)前述の①でダウンロードした「backup.zip」を選択します。

11-6.発売日通知

【購入予定】に、発売日が「通知する期間」内の本がある場合、「通知する時間」に通知を表示します。
※本機能は、定期購入によりご利用になれます。

項目 説明
発売日通知を行う 発売日通知のオン/オフを設定します。 Android13以降では通知の権限の許可が必要になります。 メニューの「本アプリの通知の設定」から表示されるAndroidの設定でも権限の許可ができます。
通知する時間 0時~23時から選択してください。
通知する期間 通知する本の発売日を以下から選択します。 ・今日のみ ・3日前から今日まで ・7日前から今日まで

11-7.このアプリについて

本棚のバージョンなどを記載しています。


△目次に戻る

12.定期購入

メニューか設定の「定期購入について」から購入できます。

12-1.定期購入

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

特典は以下となります。
(1)全ての広告が非表示になります。
(2)新刊検索で「シリーズと著者で検索」が選択可となります。
(3)発売日通知が使用可能となります。
(4)「購入年別」タブが表示可能となります。
(5)統計1の横軸で著者などの全て以外の項目が選択可となります。
(6)統計2が表示可となります。

12-2.定期購入解約

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

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

12-3.注文IDコピー

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


△目次に戻る


13.統計

画面上部で軸の設定を行います。
画面下部にグラフが表示されます。一番下までスクロールさせるとグラフ全体が表示できます。
グラフが複数ページになる場合は、ページ操作ボタンが表示されます。
統計1/統計2の切り替えはメニューの「統計1表示」/「統計2表示」で行います。

13-1.統計1:期間ごとの統計

軸1:購入日/読了日の年/月ごと
軸2:項目の冊数/価格
※定期購入なしの場合は、項目の「全て」以外は選択できません。
統計1の例


13-2.統計2:項目ごとの統計

※定期購入なしの場合は、統計2は表示できません。
範囲:購入日/読了日の年月範囲
軸1:項目
軸2:冊数/価格
統計2の例



△目次に戻る


14.その他


14-1.ボタン

本アプリで使用している主なボタンは以下となります。


14-2.選択画面表示

選択画面は、現在選択されている項目が選択状態となって表示されます。
選択状態について、以下の機能もあります。

14-2-1.カナがある項目

カナがある著者などは、入力欄にひらがなで1文字以上入力して選択ボタンをタップすると、前方一致する項目が選択状態で表示されます。

例えば、著者入力欄に「な」と入力して選択ボタンタップすると、「夏目漱石(ナツメソウセキ)」が選択状態で表示されます。

ひらがなではなく、漢字でも選択されます。
例:「夏」→「夏目漱石(ナツメソウセキ)」

14-2-2.カナがない項目

カナがないジャンルなどは、入力欄に漢字で1文字以上入力して選択ボタンをタップすると、前方一致する項目が選択状態で表示されます。
例:「小」→「小説」


△目次に戻る

ArrayListから配列、配列からArrayListへ変換

こんにちは。

簡単な記事ですが、すぐ忘れてしまうので、書いておきます。

配列を動的に追加したい場合に、よくArrayListを使用しています。
追加後に、配列に変換するには、以下のようにします。




追記:
逆も記載しておきます。




2017年2月20日月曜日

設定の変更をキャッチ

こんばんは。


設定の変更をキャッチするには、以下を利用します。




その為には、以下のようにリスナーを登録しておきます。




解除も書いておきます。




この機能は、非常に便利ですので、是非使いましょう。

2017年2月14日火曜日

MultiDexについて

こんばんは。

ビルドしているとある日突然、エラーとなりました。

Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536


単一の DEX ファイル内で参照できるメソッドの総数が 65,536 に制限されているそうです。
このエラーに単純に対応するのなら、MultiDexについて書かれている、以下を参照してください。

https://developer.android.com/studio/build/multidex.html?hl=ja


しかし、ちょっと待ってください!!


本当にメソッドの総数が65,536を超えるほどに、コーディングしたのでしょうか。
私は、電卓を作成したときでさえ、上記エラーとなってしまいました。
そのときは、疑問を持ちつつ、MultiDexの対応をしました。
電卓ほどの簡単なプログラムでさえ、MultiDexの対応をする必要があることに疑問を持っていたのです。

そもそも、自分ではそんなにコーディングしていません。参照しているライブラリで、65,536を超えていたのです。

例えば、Google Play Serviceを以下のようにbuild.gradleに設定してしまうと、65,536を超えます。



使いたいライブラリだけ参照するようにすれば、参照メソッド数を抑えられます。

例えば、Google DRIVEを使いたい場合、以下のようにすればよいです。


Google Play Serviceは以前は分かれていなかったそうですが、今は、分かれています。
詳しくは、以下を参照してください。

https://developers.google.com/android/guides/setup


選別せずに、Google Play Serviceを丸ごと設定し、MultiDexを設定していると、当然、apkファイルが大きくなってしまいます。
ビルドに時間がかかり、Debug時等のInstallで時間がかかり、時間の無駄です。

いまのところ、本棚もMultiDex対応せずに済んでいます。

2017年2月8日水曜日

バーコード読み込みについて

こんばんは。

本棚で、バーコード読み込みに、すごく苦労しました。

本についているバーコード読み込みは、ZBarが優秀らしいと書かれていたので、ZBarを採用することにしました。

ZBarのライブラリは、以下で、ダウンロードできます。

https://sourceforge.net/projects/zbar/files/AndroidSDK/

0.2の方が最新のようです。
しかし!これを落としてきて、実装して、実機で動かそうとしたら、例外発生!

例外内容:
E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.bnbnapp.bookshelf, PID: 5212
                  java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/com.bnbnapp.bookshelf-2/lib/arm/libiconv.so: has text relocations

例外箇所:
        System.loadLibrary("iconv");

上記の箇所で落ちます。色々試したのですが、上手くいきません。
どうやら、Android 6.0からテキスト再配置をサポートしていないそうです。
この問題を解決するには、ライブラリをコンパイルする際に、gccのコンパイルオプション、-fPICを指定する必要があるそうです。

以下、gccのコンパイルオプション-fPICと-fpicの違いは?より。

「gcc でプログラムをコンパイルする場合に、-fPIC がよく使われます。

-fPIC は、UNIX(Linux)で共有ライブラリ(shared object, シェアードオブジェクト)を作成するときに使われるオプションです。

PIC とは Position-Independent Code の略です。日本語では、位置独立コードとなります。または、位置独立実行形式です。 PIC でコンパイルされたコードは、メインメモリのどこに配置されても、絶対アドレスに関わらず、正しく実行できます。 」

じゃあ、ライブラリを-fPICをつけて、コンパイルしなおせばいいのかと思ってからが、大変でした・・・。

libiconvのソースを落として、NDKでクロスコンパイル、Cygwinでコンパイル、CentOSのLinuxでコンパイル、と試しても、コンパイルエラーとなってしまい、だめでした。

そこで、見つけたのが、以下のページです。

https://github.com/dm77/barcodescanner


コンパイルに成功した上に、その手順まで書いてあります!
しかし、その通りにやったのですが、やはりコンパイルエラーとなります。
iconvのソースは、よくわからなかったのですが、とりあえず、エラーを除去して、動かしてみたのですが、今度は別の例外(たしかmemclrがないというような例外) になってしまい、力尽きました。

結局、dm77さんのライブラリを使わせてもらうことにしました。



2017年2月7日火曜日

アプリ「本棚」公開


新たにアプリを公開しました。

本管理を行う「本棚」です。

まだ2作目ということもあり、結構苦労しました。

苦労した点などを今後アップしていきたいと思います。

























Google Playのリンクは以下です。

Google Play 



 

2017年2月6日月曜日

プライバシーポリシー


Takuya Abeが提供するアプリ「本棚 本の管理と新刊検索」、「CDラック CD管理、新譜検索」、「DVDラック DVDとブルーレイ管理、新作検索」、「底値チェック」は、カメラ機能によるバーコード読み込み、Googleアカウントを使用したGoogle Driveへのバックアップを行います。また、広告が表示され、利用状況解析を行います。

Takuya Abeが提供するアプリ「懸賞生活」、「ダビマスメモ」、「フローティングメモと通知メモ」は、Googleアカウントを使用したGoogle Driveへのバックアップを行います。また、広告が表示され、利用状況解析を行います。

Takuya Abeが提供するアプリ「お買い物電卓」は、特別な機能を有しません。

〇収集する利用者情報

 

・バーコード読み込み

カメラ機能を使用します。ただし、画像の保存や送信などは一切行いません。

・バックアップ、復元

Googleアカウントを使用して、Google Driveへ接続します。ただし、入力したアカウント情報の保存や送信などは一切行いません。

・広告について

本アプリでは、広告配信ツールとしてAdMob(Google Inc.)を使用しており、AdMobがご利用者の情報を自動取得する場合がございます。取得する情報、利用目的、第三者への提供等につきましては、以下の広告配信事業者のアプリケーション・プライバシーポリシーのリンクよりご確認ください。

Google 広告に関するポリシー

・利用状況解析ついて

本アプリでは、今後の開発の参考とするため、アプリの利用状況データを収集するツールとしてFirebase(Google Inc.)を使用しており、Firebaseがご利用者の情報を自動取得する場合がございます。取得する情報、利用目的、第三者への提供等につきましては、以下のGoogleプライバシーポリシーのリンクよりご確認ください。

Google プライバシーポリシー


〇利用者関与の方法


本アプリをアンインストールすることにより、 情報の収集は直ちに停止されます。


〇問い合わせ窓口


本アプリにおけるご利用者情報の取扱いに関するお問い合わせ、ご相談は以下の窓口でお受けいたします。

bnbnapp@gmail.com


〇プライバシーポリシーの変更について

本アプリのバージョンアップに伴い、送信される利用者情報、利用目的等が変更される場合があります。変更がある場合には、当サイトで告知致します。


制定日 2017/02/06
改定日 2017/02/23
改定日 2017/04/01 ・DVDラック追加
改定日 2017/08/11 ・自動バックアップについての記載追加
改定日 2018/12/07 ・底値チェック追加
改定日 2022/01/28 ・お買い物電卓追加
改定日 2022/09/03 ・懸賞生活、フローティングメモ追加
           ・自動バックアップについての記載削除
           ・広告についての記載追加
           ・利用状況解析ついての記載追加
改定日 2024/06/04 ・デベロッパー名とアプリ名を変更
           ・広告表示と利用状況解析を各アプリの説明に追記

非同期処理のCursorLoaderについて

こんばんは。

アプリ開発が大詰めだった為、ブログ更新を怠っていました。
Adsenseの審査が通ったからって、更新止まったらだめですね・・・。

以前、非同期処理の記事を書いていましたが、今日は、CursorLoaderについてです。

CursorLoaderは、文字通りCursorをLoadします。
AsyncTaskLoader<Cursor>をextendsしているので、以前書いたAsyncTaskLoaderと実装方法はあまり変わりません。Cursorを扱う場合は、CursorLoaderを使用した方がいいと思います。


onCreateLoaderとonLoadFinished、onLoaderResetをOverrideします。
あとは、Loaderを実行します。
destoryも忘れずに。

ちょっとはまったのが、Activityで、getLoaderManager()がコンパイルエラーとなったことです。 サポートライブラリのandroid.support.v7.app.AppCompatActivityを使用する場合は、全てサポートライブラリで統一して、Activityでは、getSupportLoaderManager()を使用するようにしました。
CursorLoaderを使用していると、ContentProviderのinsertなどで、以下のようにしておけば、変更があったときに、onLoadFinishedが自動で呼ばれます。
ただし、onLoadFinishedで、Cursorをcloseしてしまうと、変更があっても、onLoadFinishedは呼ばれなくなります。