2011-11-17 18 views
5

私は現在、一定の間隔でサーバーからデータをプルするアプリケーションを開発中です。新しいデータを取得せずにサーバーを頻繁にポーリングするため、これが最も効率的な方法ではないことがわかります。android 2.1が知りません(アンドロイド2.1で)許可を使用

解決策はC2DMを使用することですが、現在この設定方法を研究しています。しかし、私のユーザーの約7%はまだAndroid 2.1を使用しており、私はそれらをアプリケーションから除外したくありません。

私は、ユーザーが実行しているAndroidのバージョンを確認してから、C2DMまたはポーリングを使用するかどうかを決めることができます(両方とも同じapkにコードを持つ)。しかし、C2DMコードを実行するためには、私のマニフェストで特定の権限を使用するように指定する必要があります。これらの権限でアンドロイド2.1のユーザーが私のapkファイルをダウンロードすることはできないと心配しています。

私の前提として、2.1ユーザーがC2DM権限を持つアプリケーションをダウンロードすることができない場合、どうすれば回避できるかということが私の質問です。 2つの異なるapkファイルを作成して、古いアンドロイドバージョンに制限されていないアプリケーションに加えるすべての(他の)アップデートと個別にアップデートする必要がありますか?

ありがとうございます。

+0

これは良い質問ですが、現在のタイトルではほとんど見えません。私は "各バージョンごとに異なる権限"のようなものをお勧めします。 –

+0

ありがとう、私はより一般的なタイトルにタイトルを変更しました。 – Lars

答えて

4

Google C2DMは2.2より前に動作しませんが、すべてのバージョンのアクセス許可を維持できます。あなたがしているのはマニフェストにレシーバを設定することだけです。

したがって、2.2より前に登録すると、登録要求に結果が届かないだけです。カスタム許可を定義しているよう

::ちょうど答えはより明確にする

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 

を事前2.2デバイスはただにこの権限を無視します。デバイスがこのセットでインストールできることを意味します。それはちょうど前2.2を働かせません。

P.S. それはまた注目に値する。 Google C2DMはアンドロイドマーケットのないデバイス(アンドロイドマーケットの設定なし)では動作しません。

+0

したがって、明確にするために、 'com.google.android.c2dm.permission.RECEIVE'パーミッションはカスタムパーミッションですか?この許可は私によって定義されていません(しかし、Googleによって)? – Lars

+1

この許可は実際に2.2以降のMarket Placeアプリの許可を参照しています。そのカスタムとして、市場のペースには、人々が2.2デバイス前のダウンロード/作業を止めることはできません。申し訳ありませんが、カスタム権限の仕組みを詳しく説明するリンクはありません。 市場が* android.permission.X *を無視しない限り、十分に言えます。 –

+0

私はアクセス許可を読む必要があるように見えます。どうもありがとうございます。 – Lars

関連する問題