Tapjoyでは Android NDKでC++ APIを提供します。NDKを利用する開発環境、例えばCocos2d-xなどからの利用が可能です。
C++ APIはTapjoy Android SDKで提供され、Tapjoy iOS SDK’s C++ APIと互換性をもっています。
NDKモジュールを利用するにはC++ヘッダーとライブラリがTapjoy SDKに含まれている必要があります。Tapjoy NDKモジュールのパスNDK_MODULE_PATHを追加してください。
ndk-build NDK_MODULE_PATH=../../TapjoySDK_Android/Library/modules
proj.android/build_native.sh
のNDK_MODULE_PATH
に コロン(;)出区切って追加して下さい:
# proj.android/build_native.sh
...
if [[ "$buildexternalsfromsource" ]]; then
echo "Building external dependencies from source"
"$NDK_ROOT"/ndk-build -C "$APP_ANDROID_ROOT" $* \
"NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/source:../../TapjoySDK_Android/Library/modules"
else
echo "Using prebuilt externals"
"$NDK_ROOT"/ndk-build -C "$APP_ANDROID_ROOT" $* \
"NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/prebuilt:../../TapjoySDK_Android/Library/modules"
fi
下記モジュールのいずれを使用してください:
Static Library Moduleにアプリライブラリをリンクしてください。
アプリプロジェクトで、Tapjoy APIを実装するソースコードをビルドする Android.mkにtapjoy_staticを追加してください:
```make
...
include $(CLEAR_VARS)
...
LOCAL_STATIC_LIBRARIES := tapjoy_static
...
include $(BUILD_SHARED_LIBRARY)
...
$(call import-module,tapjoy)
...
JavaVM:
`tapjoy_static` モジュールは JavaVM オブジェクトを必要とします。`JNI_OnLoad` 関数の定義に `Tapjoy::setJavaVM` メソッドを追加します:
```java
#include "TapjoyCpp.h" // Tapjoy C++ API
...
jint JNI_OnLoad(JavaVM *vm, void *reserved) {
...
JniHelper::setJavaVM(vm);
tapjoy::Tapjoy::setJavaVM(vm);
...
}
Shared Library Module も利用可能です。この場合、JavaVMオブジェクトは必要ありません。
tapjoy_shared
モジュールを追加します:
アプリプロジェクトで、Tapjoy APIを実装するソースコードをビルドする Android.mkにtapjoy_sharedを追加してください:
```make
...
include $(CLEAR_VARS)
...
LOCAL_SHARED_LIBRARIES := tapjoy_shared
...
include $(BUILD_SHARED_LIBRARY)
...
$(call import-module,tapjoy)
...
Shared Library Module の依存関係問題を解決する:
Tapjoyライブラリを使用するアプリをロードする前に、`Tapjoy.loadSharedLibrary()` を呼び出してください:
```java
import com.tapjoy.Tapjoy;
static {
Tapjoy.loadSharedLibrary();
System.loadLibrary("YourAppLibrary");
}
TapjoyCpp.h
ヘッダファイルを追加します:
#include "Tapjoy/TapjoyCpp.h" // Tapjoy C++ API
using namespace tapjoy;
Tapjoy::trackEvent("some event");
詳細はこちらを参照下さい.
TJPrivacyPolicyHandle policyHandle;
policyHandle = TJPrivacyPolicy::getPrivacyPolicy();
TJPrivacyPolicy::subjectToGDPR(policyHandle,true);
TJPrivacyPolicy::setUserConsent(policyHandle, "1″);
TJPrivacyPolicy::setUSPrivacy(policyHandle, "1YNY");
TJPrivacyPolicy::belowConsentAge(policyHandle, true);