3

我的应用程序可以使用他们的门户网站轻松地为黑莓设备重新打包。 http://developer.blackberry.com/android/documentation/using_the_bb_packager_1873331_11.html

所以我可以把我的 .apk 文件变成一个 .bar 文件,用户可以安装在他们的 BB10 设备上。

我现在担心的是稍微更改 UI 或禁用有关操作系统的某些功能(应用内计费、谷歌地图、一些意图)。

例如,我想在合法的 Android 设备上显示一个地图按钮,并在黑莓端口上删除这个按钮。我还有一些与小部件相关的偏好,这些偏好没有理由出现在 BB10 设备上

您知道检测应用程序是重新打包的应用程序还是原始 apk 的完美方法吗?

我的猜测是使用构建信息,但我很确定有更好的方法来实现这一点。

4

3 回答 3

1

这个问题有点老了,但是因为当我在寻找答案时它是谷歌的热门话题,所以我想我应该在这里发布:

http://supportforums.blackberry.com/t5/Android-Runtime-Development/How-to-Detect-if-an-Android-Application-is-Running-on-a/ta-p/1470313

您可以使用 System.getProperty("os.name") 查询操作系统名称,在 BlackBerry 上运行时将返回 qnx。

于 2013-10-20T02:54:14.927 回答
0

您可以将您的 Android 项目更改为库项目,并添加两个引用该库的不同 App 项目。
将字符串资源添加到 ./res/values(我称之为 static_values.xml)并在其中放置一个字符串(对于 Android,platform="Android" 和 platform="BB10")。

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string name="platform">BB10</string>
</resources>

您可以使用 getResources().getString(R.string.platform) 来引用它,并在代码中决定要做什么。

于 2013-05-15T18:00:29.897 回答
0

谈到地图,特别是 Google 地图com.google.android.maps,您不能在您的 java 代码或清单文件中引用该库,在删除该库的所有引用之前,不会创建 .bar。

此外,Q10 的屏幕比例为 1:1,就您的布局而言,必须考虑这一点。

出于同样的原因,创建不同的代码库是我前进的唯一途径。

于 2013-05-15T08:21:43.633 回答