使用android 2.1不知道的权限(在Android 2.1上)

Lar*_*ars 5 permissions android version android-manifest android-c2dm

我目前正在开发一个应用程序,它以一定的间隔从服务器中提取数据.我意识到这不是最有效的方式,因为它经常轮询服务器而不检索任何新数据.

解决方案是使用C2DM,我目前正在研究如何设置它.但是,大约7%的用户仍在使用Android 2.1,我不想将其从我的应用中排除.

我想我可以检查用户正在运行哪个版本的android,然后决定是使用C2DM还是轮询(在同一个apk中都有代码).但是,为了运行C2DM代码,我需要在清单中指定使用某些权限,而我担心有了这些权限,android 2.1用户将无法下载我的apk文件.

所以我的问题是,如果我认为2.1用户将无法下载具有C2DM权限的应用程序,以及如何解决此问题,我是否正确.我是否必须创建两个不同的apk文件并使用我对应用程序进行的每个(其他)更新单独更新它们不受旧版Android版本的限制?

谢谢你.

Chr*_*ins 4

Google C2DM 在 2.2 之前无法工作,但您可以维护所有版本的权限。因为您所做的只是在清单中设置接收器。

因此,当您注册 2.2 之前版本时,您将永远不会收到注册请求的结果。

只是为了让答案更明确:

当您定义自定义权限时:

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
Run Code Online (Sandbox Code Playgroud)

2.2 之前的设备将忽略此权限。这意味着任何设备都可以安装此套件。它只是在 2.2 之前不起作用。

PS 这也值得注意。Google C2DM 无法在没有 Android 市场(且没有 Android 市场设置)的设备上运行。