2015-01-06 5 views
2

Android 앱 (Libgdx 사용)에 Google 인앱 결제를 사용하고 싶습니다. 기본적으로 모든 사용자에게 무료 앱입니다. InproPurchase를 사용하여 동전을 구입했습니다.Libgdx + Android 인앱 구매

공식 Google의 청구 사이트에서 읽었지만 Libgdx에 링크하는 방법을 모릅니다. 공식 Libgdx 사이트는 명확한 지시와 설명을 제공하지 않습니다.

오늘과 같이 Libgdx와 인앱 결제를 연결하는 방법에 대해서는 아직 모릅니다. 또한 사용자가 잠금 해제 된 항목을 구입할 때 정보가 저장되는 위치 (환경 설정 파일에 있습니까?)는 어디입니까? 나는 전혀 모른다.

누군가 나를 올바른 길로 인도하면 좋을 것입니다. 미리 감사드립니다.

+0

여기에 몇 가지 유용한 링크가 있습니다. http://stackoverflow.com/questions/19921146/libgdx- android-in-app-simple-tutorial –

+0

실제로이 링크를 참조하십시오. 그러나 어떤 샘플 또는 설명서도 필요합니다 –

+0

https://github.com/libgdx/gdx-pay –

답변

0

당연히 gdx pay (link)를 사용할 수 있습니다.

그러나 내가 선호하는 것은이 모든 것입니다.

코드를 추가하기 전에 OS 특정 코드를 호출하는 데 필요한 모든 것을 수행 할 수 있다는 사실을 알려 드리고자합니다.

시작하기 전에 .aidl for in app billing을 갖고 있고 적절한 권한이 있는지 확인하십시오.

첫째, 우리는 코어 인터페이스를 필요

public interface IabWrapper { 
    boolean connect();//Connect to the IAB framework - return success or failure 
    Result buyProduct(String SKU, boolean consumeInstantly);//Buy the product, and figure out whether or not to consume it instantly. Return success or fail 
    //You get the idea at this point. Add more methods to handle subscriptions (if applicable), etc 
} 

그리고 결과 :

public class Result { 
    boolean purchaseSuceeded;//If the purchase succeeded 
    String sku;//The SKU 
    boolean didConsumeSucceed;//If consumable, did it succeed. Just set it to "true" if it doesn't cusome 
    //Here you can add constructors, other data, whatever you need 
} 

지금, 당신의 안드로이드 프로젝트에 당신이 IabWrapper를 구현하는 클래스를 만듭니다. IAB에 필요한 모든 것을 가진 생성자를 추가하십시오. 또한 사용하는 다른 모든 플랫폼에이를 추가하십시오.

이 시점에서

, 당신은해야합니다

  • 핵심 모듈에 IabWrapper라는 클래스를
  • 핵심 모듈
  • 안드로이드 모듈에 IabWrapper를 구현하는 클래스의 클래스라는 결과

이렇게하면 이점은 android docs에 따라 앱 청구서에 설정할 수 있다는 것입니다. 또는 당신이 찾은 다른 문서/튜토리얼. 그것을 IabWrapper에 추가하는 메소드로 변환하면 Android 문서를 따라 구현할 수 있습니다.

이제 Android 프로젝트에서 iab 코드를 만든 후에는 핵심 프로젝트에서 초기화하는 클래스를 열어야합니다. 거기에, 당신은 함께 생성자를 추가 중 하나

  • 래퍼에 대한 인수
  • (어떤 경우) 당신이 모든 다른 래퍼와 래퍼 인수 (나는이 방법을 사용하지만, 내가 3가 -4 랩퍼이고 게임이 끝나면 약 6시에 끝날 것으로 예상 됨)

물론 데스크톱 프로젝트, ios 프로젝트, android 프로젝트 또는 다른 프로젝트에서 래퍼를 전달해야합니다. 너는 가지고있다.

인터페이스이기 때문에 생성자에서 IabWrapper으로 정의하고 인터페이스를 구현하는 클래스에 앱 구입시 처리 방법을 제공하는 것은 개별 플랫폼마다 다릅니다.

마찬가지로 this question 앱 구매시 업데이트가 있는지 확인하기 위해 콜백 클래스를 추가하는 것이 좋습니다. 당신이 변경하지 않으면 안드로이드는 인터넷 통화에서 비동기입니다 (나는 잊어 버렸습니다. 그러나 주 스레드에서 인터넷 전화를 할 수있는 필드가 있습니다. 그러나 주 스레드를 차단할 때 종종 ANR이됩니다).

따라서, 귀하의에서이 같은 somethign 추가 렌더링 :

if(purchaseRequested && !callback.response()){ 
    //What can you do, there is a purchase requested you are waiting for. 
}else if(purchaseRequested && callback.response(){ 
    //This is where you would process the response, add whatever is purchased, save, unlock content, whatever the in app purchase does 
} 

당신이 안드로이드 OS를 처리하거나,이 방법은 지나치게 복잡하게 보이는 생각하는 방법에 관한 단서가 없다면, 난 당신을 추천합니다 대신 gdx pay를 사용하십시오.


내가 처음에 말한 것을 차지하기 위해,이 기술은 아무것도 당신이 OS 특정 일을 필요에 적용 할 수 있습니다. 코어를 작성하고 다른 프로젝트에서 인터페이스를 대체하여 코어 클래스에 전달하십시오. 그런 다음 래퍼를 호출하고 인터페이스이기 때문에 클래스를 구현하는 클래스를 호출합니다.