应用内结算测试RESULT_DEVELOPER_ERROR

时间:2011-10-13 14:48:29

标签: android in-app-purchase in-app-billing

我正在使用开发者帐户和测试项目(android.test.purchased)在手机上测试应用。当我调用isBillingSupported()方法时,我的ResponseCodeRESULT_DEVELOPER_ERROR。我没有在市场上发布应用程序,但我读到这是不必要的,因为我使用android.test.purchased

<uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.READ_OWNER_DATA"/>
    <uses-permission android:name="android.permission.WRITE_OWNER_DATA"/>        
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  
    <uses-permission android:name="com.android.vending.BILLING"/>

我把它作为草稿上市,但仍然没有运气......我正在失去理智...

2 个答案:

答案 0 :(得分:3)

回答你对@ Samir的回答中的问题:

  

&#34;我的问题是我需要签署一个应用程序以便发布&#34;

是的,你这样做。

  

&#34;我需要在市场上发布吗?&#34;

不,你不是。

答案 1 :(得分:0)

确保您的包裹名称正确无误。

虽然您最终需要让应用程序签名发布(how to do this),但您应该可以在不签署应用程序的情况下致电isBillingSupported(),并让它返回RESULT_OK。因为您拥有BILLING权限,并且您的包名与您的应用完全相同。我使用的是其他硬编码包名称,isBillingSupported()正在返回RESULT_DEVELOPER_ERROR

所以这是我的工作代码,调用isBillingSupported()

String packageName = context.getPackageName();

try
{
    IInAppBillingService service = activity.getBillingService();
    int response = service.isBillingSupported(3, packageName, "inapp");
    Log.i("mylogtag", "response: " + response);
}
catch (RemoteException re)
{
    re.printStackTrace();
}