我有一个 GPL android 应用程序,最近已包含在 F-Droid 中。
在 Google Play 中,我使用 AdMob 获得一些收入,但当应用程序由 F-Droid 服务器构建时,他们使用 this AdMob clone因此无需添加二进制专有库即可构建代码。因此,不会显示广告。
但是,我想添加一个小“横幅”,允许用户在广告未显示时访问我的网站:我不会获得广告给我的直接收入,但至少我会让用户转到我的页面,如果他们愿意,可以捐款。
我的问题是:有没有办法知道以下代码中的“IM_USING_THE_REAL_ADMOB”?
另一种选择是知道谁签署了 APP。
有什么帮助吗?
LinearLayout layout = (LinearLayout) findViewById(R.id.adLayout);
if(IM_USING_THE_REAL_ADMOB) {
// Google Play version of the app
adView = new AdView(this, AdSize.BANNER, "ad-code");
layout.addView(adView);
AdRequest request = new AdRequest();
adView.loadAd(request);
} else {
// F-Droid versions of the App
ImageView myImage;
layout.AddView(image)
}
我试着按照“CommonsWare 的建议,通过这样做”来查看签名
PackageManager pm = getPackageManager();
try {
PackageInfo a = pm.getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
byte[] raw = a.signatures[0].toByteArray();
String sig = MessageDigest.getInstance("MD5").digest(raw).toString();
_sourceTextEditor.setText(sig);
}
catch (Exception e) {
return false;
}
但我在两部手机安装相同签名的应用程序时得到了不同的结果。我做错了什么吗?
最佳答案
看起来替代 AdMob 的 AdView 将始终向 isReady 和 isRefreshing 返回 false - 可以将此行为与官方 AdMob 的预期 AdView 行为进行比较,并相应地调整您的应用。
关于android - 有什么方法可以识别我的 Android 应用程序何时由 F-Droid 构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21063965/