我知道应用内结算是Android中的新功能,我想使用它,但版本要求让我三思而后行是否值得付出努力。我非常感谢那些已经实施或使用In App Billing的人提供的任何意见。
感谢。
答案 0 :(得分:1)
关于版本支持,您将编写一些额外的代码来检测设备操作系统版本(请参阅android.os.Build.VERSION),因此请确保它将在1.5设备上运行。我强烈建议在自己的类中隔离该代码,并且只在版本检查后实例化该类。这样你的代码保持干净(不是“hacky”)并且你不会意外地从类字段引用1.6+类。在我的代码中,我有版本测试类,如下所示:
public class Android8 {
private static final String TAG = "Android8";
// public test variables
public static final boolean IS_V8;
public static final boolean AT_LEAST_V8;
private static final Object pimpl;
static {
int sdk_int = 0;
try {
Field field = Build.VERSION.class.getField( "SDK" );
String sdk_str = (String)field.get( null );
sdk_int = Integer.parseInt( sdk_str );
} catch( Throwable e ) {
}
IS_V8 = (sdk_int==8);
AT_LEAST_V8 = (sdk_int>=8);
if( AT_LEAST_V8 ) {
pimpl = new Implementation();
} else {
pimpl = null;
}
}
// Version safe interface
public static void Camera_setDisplayOrientation( Camera camera, int degrees ) {
if( AT_LEAST_V8 )
((Implementation)pimpl).Camera_setDisplayOrientation( camera, degrees );
}
// Will cause a verify error if loaded in a pre Android8 environment
private static final class Implementation {
public static void Camera_setDisplayOrientation( Camera camera, int degrees ) {
camera.setDisplayOrientation( degrees );
}
}
}
答案 1 :(得分:1)
问题2:否,如果项目是UNMANAGED。是的,如果是的话。 这就是托管项目的重点,让谷歌的服务器为这类案件管理(重新)购买的物品。
(如果您正在销售诸如游戏关卡或应用程序功能等项目,则“按用户帐户管理”购买类型非常有用。这些项目不是暂时的,通常需要在用户重新安装应用程序时进行恢复,擦除数据他们的设备,或在新设备上安装您的应用程序。)
来自:http://developer.android.com/guide/market/billing/billing_admin.html#billing-purchase-type