Android SQLite应用内计费
我有一个测验应用程序,它用大约20个不同类别的问题填充sqlite数据库。我想实现应用内计费,这样如果有人购买Category1,那么这些问题将添加到数据库中,而不是其他问题。我的一些问题分为两类,所以让我们假设Category1和Category2Android SQLite应用内计费,android,sqlite,in-app-billing,Android,Sqlite,In App Billing,我有一个测验应用程序,它用大约20个不同类别的问题填充sqlite数据库。我想实现应用内计费,这样如果有人购买Category1,那么这些问题将添加到数据库中,而不是其他问题。我的一些问题分为两类,所以让我们假设Category1和Category2 try { for (int n = 1; n < sqlString.length; n++) { db.execSQL("INSERT INTO " + DATABASE_TABL
try {
for (int n = 1; n < sqlString.length; n++) {
db.execSQL("INSERT INTO " + DATABASE_TABLE + " VALUES ("
+ sqlString[n] + ");");
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
等,然后如果它已经买了,我将实现一个方法,如
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”赋予所有尚未购买的字符串,然后添加一个if语句,仅在sqlString[n]不为null时执行SQL
你们知道怎么做才是最好的吗?有很多方法可以做到这一点,我想会有不止一个好的答案。如果您有一个服务器,您可以执行一些操作,例如返回授权数据库/字符串的列表等。您可以使用该列表引用不同的表。您还可以创建表或使用下载表的SharedReferences。这个名单还有很多
服务器选项将添加一层安全性。存储的表索引将更容易盗版,但也可能更容易实现,并使您能够脱机使用类别 您是否考虑过从一个完整的数据库开始(即包含任何人都可以购买的所有问题),然后删除那些不再适用的问题?我没有能力使用服务器:/i我可能会坚持使用表或共享首选项,每周左右运行一次许可证检查或类似操作。我不想这样做,因为它更容易破解。我决定用if语句将每个问题都封装起来,每个类别都适用于它,如果问题没有被购买,它将保持为空。
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();