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

标签 android permissions version android-manifest android-c2dm

我目前正在开发一个应用程序,它以特定的时间间隔从服务器中提取数据。我意识到这不是最有效的方法,因为它通常会在不检索任何新数据的情况下轮询服务器。

解决方案是使用 C2DM,我目前正在研究如何设置它。但是,大约 7% 的用户仍在运行 Android 2.1,我不想将他们排除在我的应用程序之外。

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

所以我的问题是,我假设 2.1 用户将无法下载具有 C2DM 权限的应用程序是否正确,如果是这样,该如何解决。我是否必须创建两个不同的 apk 文件,并在我对不受旧 Android 版本限制的应用程序进行的每个(其他)更新中分别更新它们?

提前致谢。

最佳答案

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

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

只是为了让答案更明确:

当您定义自定义权限时:

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

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

附言 这也值得注意。 Google C2DM 将无法在没有 android market(并且没有 android market 设置)的设备上运行。

关于android - 使用 android 2.1 不知道的权限(在 android 2.1 上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8164512/

相关文章:

Android:这是什么菜单布局?

Android - 由于 errno=13,读取文件列表失败

reactjs - 尝试导入错误: 'reactstrap' does not contain a default export (imported as 'Table' )

flutter - 如何获取 Flutter Web 应用程序的构建和版本号

android - 如何在 Android 中以编程方式获取 SharedPreferences 的所有键?

android - 在 Android Studio 2 中构建时出现 "EnclosingMethod"错误

android - 无法从ftp android获取文件列表

.net - 尝试以编程方式连接到 TFS 2010 时出现权限错误

android - Cordova APK 首次运行时不请求权限

java.lang.UnsupportedClassVersionError : Bad version number in . 类文件?