繁体   English   中英

应用程序结算中的Android SQLite

[英]Android SQLite in app billing

我有一个测验应用程序,它在sqlite数据库中填充约20个不同类别的问题。 我想在应用程序计费中实施,这样,例如,如果有人购买了Category1,那么这些问题将被添加到数据库中,而没有其他问题。 我的一些问题属于两个类别,所以我们说类别1和类别2。

try {
            for (int n = 1; n < sqlString.length; n++) {

                db.execSQL("INSERT INTO " + DATABASE_TABLE + " VALUES ("
                        + sqlString[n] + ");");

            }
            db.setTransactionSuccessful();
        } finally {
            db.endTransaction();
        }

这是我当前在SQLite类的onCreate方法中设置的。 sqlString是一个字符串数组,包含到目前为止我所有的500个问题。

我将存储是否在另一个表中购买了类别(但是我对如何执行此操作有其他建议)。 我计划创建一个读取此数据库的类,设置是否购买了每个类别的布尔值true或false。 所以

boolean cat1 = CheckIfCategoryHasBeenBought(category1)

等等。如果已经购买了,我将实现诸如

boolean[] catChecker = {cat1, cat2, cat3, etc....}
SQLite info = new SQLite(this);
info.open();
info.addQs(catChecker)
//this will pass the true and false boolean values for each method then 
//based on that I choose to implement or not
info.close();

但是我不知道这是否是一个好方法。 我不确定如何检查该值是否已经添加(由于它与已购买的另一个类别交叉)。 我以为游标将是最好的检查值是否已添加,但是如何获取游标进行搜索?

我认为可以实现的方法是

1)我只用与购买的问题相关联的字符串创建一个字符串数组。 2)我在for循环中创建了一个if语句,上面检查了字符串是否来自购买的类别3)我为所有未购买的字符串赋予了“ null”值,然后添加了仅执行SQL if的if语句sqlString [n]不为null。

你们有什么主意吗?

有很多方法可以做到这一点,我认为将会有不止一个好的答案。 如果您有服务器,则可以执行诸如返回授权数据库/字符串/等列表的操作。 您可以使用它来引用不同的表。 您还可以创建一个表或使用下载表的共享首选项。 清单继续。

服务器选项将增加一层安全性。 存储的表索引将更易于盗版,但也可能更易于实现,并使您能够脱机使用类别。

您是否考虑过从完整的数据库开始-即包含任何人都可以购买的所有问题-然后删除不再适用的问题?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM