人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

アンドロイド アプリの作成をしています。

あるサーバに標準ブラウザを使用してアクセスしてから、アンドロイドマーケットの
ダウンロードページに遷移してるのですが、そのサーバでクッキーにある情報を保存しています。

※保存する情報はサーバにアクセスされた時点で作成されるもので、
毎回違う情報が作成されます。

アプリをインストールした時に、初期起動の一度だけこのサーバにアクセスして
保存してある情報を取得したいと考えています。

標準ブラウザのクッキーを取得することは不可能とのことだったので、クッキーで
保存するのはあきらめて、何か他の方法で保存しようと考えています。

保存は色々な方法があると思いますが、保存した情報の取得ができません。
(取得は、DefaultHttpClientでと考えています)

例えば、スマートフォンを一意に識別できるIDか何かをダウンロード時に
埋め込むことができれば実現できるのでは?とも思いましたが無理なようです。

上記を実現しようとした場合に考えられる方法はありますでしょうか?

サイトでもサンプルコードでもOKですが、動作確認済みのものをお願いします。
(動作確認ないものは不要です)

●質問者: turinavi
●カテゴリ:コンピュータ
✍キーワード:いもの アクセス アプリ アンドロイド インストール
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● fonya3
●35ポイント

PCブラウザでスマートフォンのメールアドレスを登録させて、スマートフォンに一意なキーを含めたURL案内メールを送って、サーバーにアクセスさせ、サーバー側で確認後、アンドロイドマーケットのダウンロードページに誘導する。。。という造りにすればクッキーとか悩まなくてもOKではないですか?

◎質問者からの返答

通常のアンドロイドアプリのインストールの流れでダウンロードから

インストールまでを行うことを目的としています。

ですので、ユーザに余計な手間をかけさせず、また、見た目は他のアプリ同様

アンドロイドマーケットからインストールするような仕組みを考えています。


2 ● ekrea
●35ポイント ベストアンサー

その「あるサーバー」ではユーザーに何らかの操作をさせるのですか?

もしそのサイトにアクセスするだけで(ユーザーが何もしなくても)自動的にクッキーを生成しているのなら、同じ事をandroidアプリ側で行えばいいような気がします。


どうしてもサーバーからデータを受け渡したいなら、リダイレクトを利用する方法があります。

AndroidManifest.xmlでActivityにこんなインテントフィルターを付けます。

<intent-filter>
 <action android:name="android.intent.action.VIEW" />
 <category android:name="android.intent.category.DEFAULT" />
 <category android:name="android.intent.category.BROWSABLE" />
 <data android:scheme="myapp" android:host="mainactivity" />
 </intent-filter>

これでこのActivityは"myapp://mainactivity/"というURLに反応するようになります。

あとは標準ブラウザにインテントを飛ばしてサーバーにアクセスさせ、サーバーから"myapp://mainactivity/"にリダイレクトをかければAndroidアプリへのコールバックが可能です。

Activityでは

String url = activity.getIntent().getDataString();

でURLが取得できますから、リダイレクトURLに必要なデータを含めれば任意のデータを受け渡し可能です。

ただ、URLにプライベートなデータを含めるのは筋が悪いと思うので(URLというものは暗号化するわけにいかないので、外からは丸見えです)、

ここでは認証用に一時的に生成した識別子だけを渡しておいて、実際に必要なデータはアプリ側でDefaultHttpClientなりで取得したほうがいいでしょう。

あとリダイレクトURIは万が一の重複を避けるため、パッケージ名を使うなどする必要があるでしょう。


一瞬ブラウザが立ち上がってしまう以外はユーザーの目に見える現象はないと思います。

難点としては、この方法が通用しない仕様のブラウザがユーザーの間に広まってしまうと厄介なことになる、ということでしょうか。

(そのような可能性は限りなく低いと思いますが、必要ならトラブルシューティングとして別のブラウザで試してみるよう告知することも考えられるかも)

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ