facebook-android-sdkではまったところ
アプリにfacebook関連の機能を組み込む際、facebookから公開されているSDKを利用することで
認証、投稿など行うことがありますが、初めて触ってみてハマったところなど。facebookをふだん
触っていなかったりするとなにがどうなってるのかわからないという状況にもなるので。
アプリからダイアログを開き、facebookのURLをwebviewに表示して認証や投稿を行えるのですが、
携帯にfacebook公式アプリがインストールされていた場合、ダイアログが開いた後、そのまま閉じて
しまうことがありました。同じ機種でも挙動が違ったり、なんだかよくわからないことになったり。
facebookアプリに途中で割り込まれてしまうため想定していない動きになるのですが、これの解決策など。
ちなみに想定したSDKの動きをする場合は、facebookのログイン画面がダイアログ形式(周りに余白があり、
半透明の黒がバックにあるもの)になり、facebookアプリが割り込む際には全画面の表示(余白なし)に
なります。
これはfacebookクラスの220行目付近にて、intent.setClassName("com.facebook.katana","com.facebook.katana.ProxyAuth"とあるのですが、
これがfacebookアプリのパッケージ名であり、公式アプリがインストールされているとそちらのほうを
見に行ってしまいます。なのでこのcom.facebook.katanaを、com.facebook.katana1など、アプリと
違う(携帯内にないパッケージ名)にしておくと、想定通りにダイアログ的にログイン画面を開くことができます。
参考:Androids Facebook SDK, single sign on question?[http://stackoverflow.com]