我有一个 Android 库,可以将数据上传到测试服务器和生产服务器。我希望使用此库的开发人员在开发时使用测试服务器,并在从 Android Market 下载应用程序时使用生产服务器。
应用程序是否有可能知道它来自哪里(市场或非市场?)我想人们可以检测到签名的 JAR 文件的存在。
是的,您可以使用签名。如果您在开发过程中使用调试密钥对应用程序进行签名,并在将应用程序上传到市场时使用发布密钥进行签名,则可以检查应用程序签署时使用的签名以及基于该使用测试或生产服务器的签名。
这是一个小代码段,用于读取应用程序的签名:
try {
PackageManager manager = context.getPackageManager();
PackageInfo appInfo = manager.getPackageInfo(
YOUR_PACKAGE_NAME, PackageManager.GET_SIGNATURES);
// Now test if the first signature equals your debug key.
boolean shouldUseTestServer =
appInfo.signatures[0].toCharsString().equals(YOUR_DEBUG_KEY);
} catch (NameNotFoundException e) {
// Expected exception that occurs if the package is not present.
}
YOUR_PACKAGE_NAME 必须类似于“com.wsl.CardioTrainer”。它必须是您在 AndroidManifest.xml 中使用的包名称。
祝你好运
mark
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)