简短的问题
在 Mono for Android (MonoDroid) - 或一般的 Android 应用程序中 - 是相同的包名称,只有大小写变化被认为是相等的?例如'Application.Application' = 'Application.Application'。该问题专门针对 Android 市场应用程序更新机制所考虑的平等性。不是一般的平等。
如果不是,那么是否有另一种方法可以更改包名称但仍然让 Android Market 将应用程序视为同一个应用程序?我们希望确保最终用户无需安装全新的应用程序,而是可以使用标准的市场更新机制。
更详细的问题描述
我们的应用程序使用包含大写符号的包名称放入 Android 市场,例如“Application.Application”。所以 - 事后看来 - 我们没有遵循建议的 Java 包命名约定。然而,原来的应用程序运行没有任何进一步的问题。
我们现在已经通过推送通知扩展了我们的 Android 应用程序。在测试期间,一个问题浮出水面,即通过 Google C2DM 服务发送推送通知无法使用大写包名称。只有在将包名称更改为在点 (.) 之前不包含大写符号之后,推送通知才会在我们的测试环境中通过。例如'application.Application'。为了实现这一点,我们更改了 manifest.xml 文件中的包名称,并通过 C2DM 注册表单提交了一个新的请求以获取不同大小写的包名称。
我们没有预见到这个问题。但是我们现在仍然希望通过 Market 部署我们的应用程序的新版本,但担心能够使用传统的更新机制。我们不想将应用程序作为一个全新的应用程序分发。
我们能意识到这一点吗?如果是这样,那怎么办?1. 我们可以只使用“application.Application”包名吗?2. 或者是否有某种机制允许更改包名?然后我们可能会进一步更改我们的包名称,使其符合标准,例如“ext.domain.application”
- 请注意,我们还没有部署我们的新应用程序。我们希望在将服务器端更改部署到生产环境之前解决这个包名称问题(例如推送通知“提供者”),因为服务器端代码还包含用于发送消息的包名称。
- 进一步注意,该应用程序是使用 MonoDroid 构建的,并使用 C2dm-Sharp 库来发送和接收推送通知。也许问题源于那里,尽管它似乎是一个普遍的问题。