标签: android-lvl

在我的App Project中无法引用LVL Android库

我按照http://developer.android.com/guide/publishing/licensing.html上的说明进行操作

我制作了<sdk>/market_licensing目录的副本,然后使用Eclipse中的New Project Wizard我从Existing source创建了一个新的Android项目,并将其指向我的market_licensing副本中的library子目录.

我已经检查了market_licensing项目android属性中的"is Library"框.我已将该项目添加为我的应用程序项目中的库项目.它在列表中显示绿色复选标记.

当我保存项目设置并重建时,编译器无法在LVL项目中找到类,当我返回到我的应用程序的项目设置时,库列表中的条目现在有一个红色X而不是绿色复选标记.

我不明白我做错了什么阻止我引用LVL项目.有帮助吗?

编辑:我已经尝试将许可项目添加到我的应用项目的构建路径,然后我能够构建,但当我尝试运行应用程序崩溃,因为它找不到任何库代码.很明显,许可项目的"库"状态未正确设置和/或未在构建时自动注入我的应用项目.

eclipse android android-lvl

4
推荐指数
1
解决办法
1886
查看次数

Android许可证检查直接进入applicationError(...)

我刚刚在我的应用程序中实现了android服务器检查.我正在使用StrictPolicy方法,因为我可能只是有点苦涩的盗版版本有5倍的下载量作为市场上的版本...无论如何,我基本上逐字逐句地编写了我的源代码.但是,当我将开发人员控制台上的许可证测试响应切换为Licensed时,我会收到未经许可的对话框.但是,在applicationError方法中,调用了dontAllow(),当我对此行进行注释时,未显示未许可的对话框.我究竟做错了什么?这是我的MyLicenseCheckerCallback类.

我在onCreate中调用doCheck,在onResume中再调用doCheck.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mHandler = new Handler();
    mLicenseCheckerCallback = new MyLicenseCheckerCallback();

    // Construct the LicenseChecker with a Policy.
    mChecker = new LicenseChecker(
        this, new ServerManagedPolicy(this,
            new AESObfuscator(SALT, getPackageName(), deviceId)),
            BASE64_PUBLIC_KEY
            );
    doCheck();

    setContentView(R.layout.main);
    ...


private void doCheck() {
    mChecker.checkAccess(mLicenseCheckerCallback);
}

private class MyLicenseCheckerCallback implements LicenseCheckerCallback {
    public void allow() {
        if (isFinishing()) {
            // Don't update UI if Activity is finishing.
            return;
        }
        // Should allow user access.
    }

    public void dontAllow() {
        if …
Run Code Online (Sandbox Code Playgroud)

android android-lvl

4
推荐指数
1
解决办法
4111
查看次数

无法在SDK Manager中找到Google Market Licensing包

我根据这个设置开发环境和下载LVL部分说"启动Android SDK Manager,然后选择Google Market Licensing包".当我启动SDK并完成加载存储库时,它不会显示Google Market Licensing应用.救命!

它确实显示了Google Play许可库,但Google网站上的说明明确提到了Google Market Licensing包.

java android android-lvl

4
推荐指数
1
解决办法
2524
查看次数

Google Play许可 - 错误6是什么?

我正在使用Google Play许可API测试我的应用.该应用程序成功绑定到许可服务,但回调给出错误6.我已检查LicenseValidator中的错误代码,这不是其中列出的错误代码之一.

有谁知道错误6是什么意思?

public class MyActivity extends FragmentActivity
{

    private static final String BASE64_PUBLIC_KEY = "ZZZZ";

    private static final byte[] SALT = new byte[] {
        XXXX
    };

    private LicenseCheckerCallback mLicenseCheckerCallback;
    private LicenseChecker mChecker;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);

        String deviceId = Secure.getString(getContentResolver(), Secure.ANDROID_ID);

        // Library calls this when it's done.
        mLicenseCheckerCallback = new YAHLicenseCheckerCallback();

        // Construct the LicenseChecker with a policy, obfuscator and public key
        mChecker = new LicenseChecker(this, 
                new ServerManagedPolicy(this,
                new AESObfuscator(SALT, getPackageName(), deviceId)),
                BASE64_PUBLIC_KEY);
        mChecker.checkAccess(mLicenseCheckerCallback);
    } …
Run Code Online (Sandbox Code Playgroud)

android android-lvl

4
推荐指数
1
解决办法
3143
查看次数

许可证检查专业密钥

所以我想制作一个加载了全部功能的免费应用程序.在应用程序检测到许可的专业密钥之前,专业版功能将被禁用.当然我想让pro key使用LVL检查它的许可证.虽然我知道如何在此之前做正确的事情,但我不知道如何使专业密钥与应用程序通信它应该启用专业功能.

这是主应用程序代码(com.test.mainapp):

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    context = getApplicationContext();

    final PackageManager pacman = getPackageManager();
    final int signatureMatch = pacman.checkSignatures(getPackageName(),
            "com.test.mainapp_key");

    if (signatureMatch == PackageManager.SIGNATURE_MATCH) {
        Toast.makeText(context, "Pro key detected!", Toast.LENGTH_SHORT)
                .show();
    } else {
        Toast.makeText(context, "Free version", Toast.LENGTH_SHORT).show();
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然这会阻止其他人为我的应用程序制作假钥匙,但他们仍然可以在线共享关键应用程序,并且它可以正常工作.因为我们不能从另一个应用程序执行LVL检查,我希望许可证密钥应用程序检查它自己的许可证,如果它是正确的,那么只有用户才能获得专业功能.如何让许可证密钥应用程序与主应用程序相互通信?

我试图获得的功能就像Titanium Backup一样.

android android-lvl

3
推荐指数
1
解决办法
3721
查看次数

Google许可证验证在开发设备上突然失败

几个月前我发布了一款使用谷歌LVL进入市场的应用程序.出于某种原因,我的Nexus One开发手机上的应用实例始终未通过验证,大约3天前(2012年3月25日)开始.运行相同版本的应用程序的客户不会报告任何故障.我试图通过我的开发者控制台切换许可响应 - 许可证检查仍然失败.我卸载并重新安装了应用程序,没有任何效果.(我使用adb在我的开发者手机上安装了该应用,因为Google不允许我通过商店购买我自己的应用).我想知道这个问题是否是由于最近Market/Play应用程序的变化造成的; 手机正在运行Play商店的3.5.15版本.有谁知道为什么会这样,以及如何解决它?谢谢,汤姆

android android-lvl

3
推荐指数
1
解决办法
1923
查看次数

在 Google Play 上查询应用程序当前版本的更快方法?

我希望能够在应用程序启动时将运行版本与当前在 Google Play 上的相同应用程序版本进行比较。

我找到了一个很好的方法,在这里描述:

public String getLatestVersionNumber() {
    String versionNumber = "0.0.0";

    try  {
        Document doc = Jsoup.connect("http://www.appbrain.com/app/wallpaper-switch/com.mlevit.wallpaperswitch").get();
        Elements changeLog = doc.select("div.clDesc");

        for (Element div : changeLog) {
            String divText = div.text();

            if (divText.contains("Version")) {
                return divText.split(" ")[1];
            }

        }
    }
    catch (IOException e)  {
        e.printStackTrace();
    }

    return versionNumber;
}
Run Code Online (Sandbox Code Playgroud)

但是它太慢了,并且严重妨碍了应用程序启动时的用户体验。

是否有更快的方法在 Google Play 上查询应用程序的当前版本?

也许是一些隐藏的 LVL 或应用内计费 API?

android android-lvl in-app-billing google-play

3
推荐指数
1
解决办法
770
查看次数

Google Play应用副本保护,许可.这可以在以后添加吗?

我知道这个话题已在这里多次讨论过了.

这是我第一次将应用上传到Google Play.该应用程序是免费的.我阅读谷歌的许可支持网页,但我真的很困惑.根据我的理解,许可应该用于付费应用程序,以防止将应用程序从一个设备复制到另一个设备.

我的应用程序将是免费的.我需要实施许可吗?我想这只能帮助我防止应用程序从一台设备复制到另一台设备(可能不会是这样的,因为它是免费的)但是,如果我使用它,我可能会跟踪正确的下载次数.这会以不同的方式帮助我吗?

我读到,当您上传应用时,应该有一些复选框"复制保护"您的应用.它仍然存在且可用吗?

将来我计划在应用程序中添加一些付费模块.是否可以在即将发布的版本中添加许可?

非常感谢,Dan

android android-lvl

3
推荐指数
1
解决办法
887
查看次数

Lollipop 5.0示例许可检查应用程序在仿真器(AVD)上崩溃

当运行Google在sdk/extras/google/play_licensing中提供的示例许可证检查应用程序时,它会在运行Lollipop(5.0)的模拟器(AVD)上崩溃(我没有运行5.0的手机).它在运行Kitkat的手机上运行良好.

在4.4 Kitkat上,它给出了一个警告

Implicit intents with startService are not safe: Intent { act=com.android.vending.licensing.ILicensingService } 

android.content.ContextWrapper.bindService:538 com.google.android.vending.licensing.LicenseChecker.checkAccess:150 LicActivity.doCheck:126 
Run Code Online (Sandbox Code Playgroud)

我不确定5.0他们是否已将其从警告移至完全爆炸错误.

我不知道如何将隐式intent调用转换为显式调用.它在LicenceChecker类中被调用

   boolean bindResult = mContext
                            .bindService(
                                    new Intent(
                                            new String(
                                               Base64.decode("HEX_TEXT"))),
                                    this, // ServiceConnection.
                                    Context.BIND_AUTO_CREATE);
Run Code Online (Sandbox Code Playgroud)

BASE 64解码为com.android.vending.licensing.ILicensingService

我刚收到错误消息不幸的是,许可证检查程序已停止.在对话框中.

它在logcat中显示此消息

java.lang.RuntimeException: Unable to instantiate application com.android.vending.VendingApplication: java.lang.ClassNotFoundException:

 Didn't find class "com.android.vending.VendingApplication" on path: DexPathList[[zip file "/system/app/LicenseChecker/LicenseChecker.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
Run Code Online (Sandbox Code Playgroud)

有人报道了一段时间但仍然没有解决方案

http://code.google.com/p/android/issues/detail?id=61680

android android-intent android-lvl android-5.0-lollipop

3
推荐指数
1
解决办法
2892
查看次数

Android Studio 中 Android 应用的 Google Play 许可

我正在尝试为 Android studio 中的一个用 Kotlin 编写的应用程序设置 Google Play 许可。我的目标是避免用户在不通过商店购买我的应用程序的情况下共享 APK 文件。

我尝试过的:

  • 我尝试按照他们的文档进行操作。这不是很有用。它跳过了许多细节,而且它并不是真正的教程。我无法使用它。

  • 我看过这个问题,它确实有一个又长又详细的类似教程的答案。但这个答案似乎早已过时了。它会导致大量警告并以“意图必须明确”异常终止。

我的问题总结是:

如何通过 Google 设置许可证检查,以便未通过商店购买该应用程序的人无法安装它。尽管我无法找到任何正确的答案,但这似乎是一件很常见的事情。

android licensing android-lvl kotlin android-studio

3
推荐指数
1
解决办法
1833
查看次数