android - 有什么方法可以识别我的 Android 应用程序何时由 F-Droid 构建?

标签 android admob

我有一个 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/

相关文章:

c# - 如何在场景变化时隐藏横幅广告 Unity AdMob?

android - 如何从 Admob 中删除或删除 Android 应用程序?

java - 视频标签不显示视频网址

admob - admob 为 iOS 收集哪些数据?

android - 用相机拍照并编辑

java - Android - vector 图像质量下降?

android - AdMob:AdLoader 在获取 URL 时 60000 毫秒后超时

android - 如何在不重复请求的情况下显示admob?

android - 我是否需要在 onDestroy 期间从 View 中释放 View.OnClickListener?

Facebook 照片的 Android 多部分/表单数据编码