ユーザーの嗜好を管理するために、私は現在、ユーザー名(実際にはデバイスに登録した電子メールアドレス)を取得し、その「ハッシュ」を「ユーザーID」として使用して、ユーザー。記載されている行に沿った何かhere。Android:怖い(ユーザー用)権限を必要とせずにユーザーIDを取得しますか?
これはすべてうまくいくが、一部のユーザーは、アカウント情報や連絡先を介してアプリに何らかの邪悪な威力を与えるような許可を与えることで(恐らく)怖がっている。
EDIT:この問題は、Googleが今やAndroid 6 runtime permissionスキーマにPermission Groupsを実装した方法によってさらに深刻です。彼らはGET_ACCOUNTS
を許可グループCONTACTS
に入れました。だから、ユニークな匿名ユーザIDを生成するには、
あなたの連絡先にアクセスすることを許可しますか? |拒否する|許可|
どのような誤解を招くのですか?私のアプリは連絡先にアクセスする必要はありませんが、ユーザーは連絡先にアクセスするためのアプリの許可を与えるよう求められています!はい、連絡先へのアクセスは必須ではありませんが、連絡先にアクセスする許可を与えるように依頼する株式システムのダイアログが表示されるという別のダイアログをユーザに説明する機会があります。 「連絡先へのアクセスが必要ない場合、なぜこの許可を与えるように求められているのですか? 「本当にデベロッパーを信頼しているのか?連絡先へのアクセスは必須ではないが、それは本当に本当ですか?」「非常に混乱し、非常に貧弱なユーザーエクスペリエンスIMHO(およびothers tooの意見)
私はむしろ、この手間と混乱を避け、特別な権限を必要とせずに一意のユーザーIDを取得したいと思います。
SDKには、追加の許可を必要とせずにユーザーの一意のユーザーIDを返すストック関数またはメソッドがありますか?もしそうでなければ、私はちょっと驚いている。なぜなら、アプリユーザーを管理するためのユーザーIDを持つことは、非常に一般的なことだと思われるからだ。
2点:
(a)は、私が唯一の匿名ユーザーIDが必要...私は実際にユーザの電子メールアドレスを必要としない、また私が今までユーザーの電子メールアドレスをしたいと思います。だから私はなぜGoogleがgetUserID()
固有の匿名IDを返すメソッドを提供することができないのか分からない、アプリケーションに特別な権限を与えることなく。
(b)同じGoogleアカウントに登録されているすべてのユーザーのデバイスで機能するように、デバイスIDではなくユーザーIDである必要があります。
ありがとうございました。
おそらくgcmidを使用できますか? –
GCM IDは、ユーザーがGoogle Playサービスアプリのデータを消去した場合に変更される可能性があります。そうするとインターネットで読んで、アンドロイドソフトウェアの更新をスピードアップしたり、いくつかのバグを修正することができます。 –
独自のデバイスid:http://stackoverflow.com/a/17625641/1048340もちろん、これは複数のデバイスを持つユーザーを考慮しません。これは許可なしで電子メールアドレスを取得するための良いオプションかもしれません:http://stackoverflow.com/a/19444640/1048340 –