구글 인앱 빌링 ver 3 item already owned 오류시 해결방법

|
소비형 아이템의 경우 구매를 할시 오류가 나면 이미 구매한 상품이라는 오류가 뜨면서 재구매가 안되는 현상이 있습니다.
oncreate() 에서 queryInventoryAsync를 실행시킨후
getPurchase 를 호출 하고 consumeAsync를 호출하면 소비형아이템이 정상적으로 구매가 됩니다.


oncreate()
       mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
            public void onIabSetupFinished(IabResult result) {
               if (!result.isSuccess()) {
                  // Oh noes, there was a problem.
                  Log.d(TAG, "Problem setting up In-app Billing: " + result);
               }            
                  // Hooray, IAB is fully set up!
               mHelper.queryInventoryAsync(mGotInventoryListener);
            }
         });


// Listener that's called when we finish querying the items and subscriptions we own
    IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() {
        public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
            Log.d(TAG, "Query inventory finished.");
            if (result.isFailure()) {
        //        complain("Failed to query inventory: " + result);
                return;
            }

            // Check for gas delivery -- if we own gas, we should fill up the tank immediately
            Purchase gasPurchase = inventory.getPurchase(SKU_GAS);
            if (gasPurchase != null && verifyDeveloperPayload(gasPurchase)) {
                Log.d(TAG, "We have gas. Consuming it.");
                mHelper.consumeAsync(inventory.getPurchase(SKU_GAS), mConsumeFinishedListener);
                return;
            }
        }
    };


Trackback 0 And Comment 0

cocos2d-x 멀티해상도 지원

|

그림파일 이미지 해상도 960*640 (그림은 480*320으로 되있지만 960*640 이미지이다.)

디자인 해상도 480*320 (실제 작업 해상도) 터치좌표 반영되는 해상도 이다

디바이스 해상도 800*480 (가장 보편적인 디바이스 해상도 갤s 기준)

 kResolutionExactFit.png

 

 

kResolutionNoBorder.png

 

kResolutionShowAll.png

 

 

 

 

1. noborder - 2번째

화면은 가득차지만 일부영역은 보여주지 못한다. 가로 세로 증가하는(Scale) 비율은 같다.

 

2. showAll -3 번째

전체 그림을 화면 안에 다 보여준다. 레터박스가 보일수 있으며 , 가로 세로 증가하는 비율은 같다.

 

3. ExactFit - 1번째

전체 그림을 화면 안에 다 보여준다. 가로 세로 증가하는 비율이 다르다.

 

 

 

 

CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();

CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();

 

visibleSize 실제 화면에 보이는 해상도

origin 짤린 해상도 기준으로 시작하는 x,y 좌표

 

일반적으로 개발자는 noborder(테두리없음) 을 많이사용한다고 한다.

 

터치좌표 기준

1.noborder은

visibleSize [480, 288]

origin [-0, 16]

짤린하면은 총 32픽셀

480*320 해상도 기준(DESIGN_RESOLUTION) 으로 17~304까지 터치가 먹히고

위아래 16포인트는 터치가 안먹힌다. (짤린화면은 총 32픽셀)

origin 시작지점 16부터

2.showAll은

visibleSize [480, 320]

origin [0, 0]

검은색 짤린 화면은 터치가 안먹히고 보여지는 해상도내에서 480*320내에는 다 터치가 먹힌다.

3.ExactFit은

visibleSize [480, 320]

origin [0, 0]

전부 터치가 먹힘

 

 

Trackback 0 And Comment 0

구글 안드로이드 인앱결제 관련 인앱빌링 ver3 적용

|



Trackback 0 And Comment 0