2011-12-05 43 views
1

我想在我的Android应用程序中测试应用内计费。问题是,由于我无法绑定到结算服务(我使用Android示例代码here),我的市场似乎并不是最新的,我一直在收到消息此应用无法连接到Market 您的版本市场可能会过时。 您可以继续使用这个应用程序,但你 赢得\'T能够进行购买。安卓市场没有在手机上更新

我试图打开它,打的回家,等待5更新市场-10分钟,然后再次尝试here,但它没有解决问题。我在没有电话连接的Nexus One上测试 - 仅通过WiFi(不确定是否与OS 2.2相关)。是否有其他人运行进入这个问题?

这里是我的活动代码:

if (!mBillingService.checkBillingSupported()) { 
    showDialog(DIALOG_CANNOT_CONNECT_ID); 
} 

,这是从正在显示的计费帐单服务的代码不支持:

public boolean checkBillingSupported() { 
    return new CheckBillingSupported().runRequest(); 
} 

    class CheckBillingSupported extends BillingRequest { 
    public CheckBillingSupported() { 
     // This object is never created as a side effect of starting this 
     // service so we pass -1 as the startId to indicate that we should 
     // not stop this service after executing this request. 
     super(-1); 
    } 

    @Override 
    protected long run() throws RemoteException { 
     Bundle request = makeRequestBundle("CHECK_BILLING_SUPPORTED"); 
     Bundle response = mService.sendBillingRequest(request); 
     int responseCode = response.getInt(Consts.BILLING_RESPONSE_RESPONSE_CODE); 
     if (Consts.DEBUG) { 
      Log.i(TAG, "CheckBillingSupported response code: " + 
        ResponseCode.valueOf(responseCode)); 
     } 
     boolean billingSupported = (responseCode == ResponseCode.RESULT_OK.ordinal()); 
     ResponseHandler.checkBillingSupportedResponse(billingSupported); 
     return Consts.BILLING_RESPONSE_INVALID_REQUEST_ID; 
    } 
} 


    private boolean bindToMarketBillingService() { 
    try { 
     if (Consts.DEBUG) { 
      Log.i(TAG, "binding to Market billing service"); 
     } 
     boolean bindResult = bindService(
       new Intent(Consts.MARKET_BILLING_SERVICE_ACTION), 
       this, // ServiceConnection. 
       Context.BIND_AUTO_CREATE); 

     if (bindResult) { 
      return true; 
     } else { 
      Log.e(TAG, "Could not bind to service."); 
     } 
    } catch (SecurityException e) { 
     Log.e(TAG, "Security exception: " + e); 
    } 
    return false; 
} 

回答

1

也许这需要手机有一个移动数据连接。您可以尝试手动安装最新的market app