……結局、どうすればいいんだろう?
私は今、開発を進める上で、非常に困っている。
携帯端末……この
android携帯の識別ができないのだ。つまり、この携帯端末固有のIDが、取れない。それが取れないということは、この端末のアプリを利用している
ユーザーを特定できない、ということだ。毎回ユーザー入力によるIDとパスワードを打ち込ませるのも手だが、それはあまりに煩雑だ。できることなら、固有
IDで端末を特定したい。
……いや、方法はないでもない。
ネット上で探したら、次のような意見が散らばっていた。
・以下のコードにてAndroid端末のANDROID_IDがとれた。
String deviceId = Settings.Secure.getString(this.getContentResolver(), Settings.System.ANDROID_ID);
・WEBからスマートフォン関係は個体識別番号の取得ができないが、
アプリになるとAndroid IDやMACアドレスを取得できるみたい。
・Androidの個体識別番号の取得には、「ANDROID_ID(Marketで使われるID)を取得する方法」と「SIMから取得する方法」の2通 りがあるけど、SIMなしWi-Fi運用してる人も多そうだから、特に理由がなければ後者は使わない方がいいような気もする。
・どうやらこのANDROID_IDというやつは、Android Marketにアクセスしないと作成されないらしい。
Webstationのように、Android Marketにアクセスできない機種では使えない。
・AndroidアプリからANDROID_ID(Androidの固有識別情報)が取れた。SIMのシリアルNoも取れた。ただこのANDROID_IDってROOT権限取れたら書き換えられるって情報もあった。大丈夫なのか?
……これはイジメか?
それとも、Googleの設計ミスか?
まとめると、この端末を特定するのに使えそうなIDは2種類存在する。
”ANDROID_ID”と、”SIM(SIMカード、電話番号を特定するのに必要)”だ。
しかし、まず後者については、スマートフォンを電話機として使わない人がいるので、具体的には SIMカードを差さずにアプリだけ使おうとする人がいるので、これに依存するわけにはいかない。
では前者、ANDROID_IDを使えばいいのだが、これには2つ問題がある。一つは、ユーザーが、Android
Marketにアクセスしていないと生成されない、という点。これは何とかなるとしても、もっと深刻な問題がもう一つ。”ROOT権限取れたら書き換えら
れる”としたら、ユーザーは自分の端末固有のIDを”詐称できる”、言い換えれば、ANDROID_IDはユニークであることを保証できない。
どうしよう……。
”- -復路- : 私は誰? …… androidアプリ実装編