我正在使用开发者帐户和测试项目(android.test.purchased
)在手机上测试应用。当我调用isBillingSupported()
方法时,我的ResponseCode
为RESULT_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"/>
我把它作为草稿上市,但仍然没有运气......我正在失去理智...
答案 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();
}