連結QRコードの作成であるが、筆者が連結QRが必要となったとび森のデータでは連結QRは4枚で各コードのサイズは固定であったため、データを元に分割数を決めると言った処理は省略している。Bitmapデータを返すべきであるがそこまでの修正は大変なので、筆者がZxingライブラリに行った修正は以下の点だけである。連結QR作成用関数の追加ヘッダー部分に連結フラグ、ページ、パリティを追加するデータの分割、ページ数及びパリティはアプリ側であらかじめ準備しておき、Zxingでは単一QRの作成と処理はほぼ同様で、ヘッダー部分だけ連結の内容を組み込めるようにしただけである。Zxingのソースで修正したのは2箇所。2.0のソースベースなので、最新版では異なる可能性がある。QRCodeWriter.javaの47行目から78行目に「encode_sa」を追加。contents,アプリからは上記関数を呼び出す際、ページ番号やパリティ、そのページ用のQRコードデータを渡す。次にEncoder.javaの82行目から150行目に「encode_sa」を追加。content,中身はencode関数のほぼコピーで、Step4.1のヘッダー情報を追加しているくらいである。修正後、Step1で準備しておいたbuildcore.batを実行してcore.jarをリビルド、androidのプロジェクトに組み込み直す。encodeHint);qrDataに全データが入っており、本関数を呼び出す度にpageを指定しQRコードを生成している。とび森のQRコードは1コードあたり0x21cサイズ固定だったため、指定ページにあたるデータの0x21c分のみ抜き出してQRコード化している。Parityは全連結QRコード共通の為、全データに対するParityを算出。この算出コードを組んだのがかなり前なのでこれで正しいか覚えていないが、おそらくほとんどの連結QRコード読み取りは連結用IDとして扱いParity計算まではしていない気もするので、適当な乱数をParityとして設定しても問題なさそうな気はする。以上で簡単ではあるが筆者がとび森用に連結QRコード読み書き対応を行った内容である。誰かの参考にあれば幸いである。コメントをキャンセルメールアドレスが公開されることはありません。*上に表示された文字を入力してください。ProgramResource.net本サイトは開発者向けに様々な情報を筆者ねふぁが提供するサイトです。筆者の個人的な経験や知識、他のサイトの情報を参考にしながらまとめています。内容に誤りや偏見などある可能性がありますのでご注意下さい。本サイトの情報を元に工作等を行い、万が一機器等が破損した場合でも責任は負いかねますので、最終的にはご自身でチェックしてから動かす様にして下さい。