Commit 2da9e428 2da9e4280e8085993d83b4b57ee54d21b3f01179 by 金学艇

1.福建初始化相关sdk(Topdraw、NewTV、局方埋点)

1 parent da0357d4
......@@ -5,17 +5,17 @@
<uses-feature android:glEsVersion="0x00020000" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
......@@ -27,18 +27,20 @@
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="com.hiveview.cloudscreen.user.READPROVIDER" />
<uses-permission android:name="com.hiveview.cloudscreen.user.WRITE_USERINFO_DB"/>
<uses-permission android:name="com.hiveview.cloudscreen.user.WRITE_USERINFO_DB" />
<application
android:allowBackup="true"
android:name="com.topdraw.melody.MelodyApplication"
android:label="@string/app_name"
android:icon="@mipmap/icon">
android:allowBackup="true"
android:icon="@mipmap/icon"
android:label="@string/app_name">
<!-- Tell Cocos2dxActivity the name of our .so -->
<meta-data android:name="android.app.lib_name"
android:value="cocos2djs" />
<meta-data
android:name="android.app.lib_name"
android:value="cocos2djs" />
<!-- TopdrawSDK -->
<activity
android:name="com.topdraw.sdk.TopdrawActivity"
android:process=":plugin"
......@@ -46,26 +48,42 @@
<meta-data
android:name="TOPDRAW.PLATFORM"
android:value="CMCC.HaiNan" />
android:value="FJ.CMCC" />
<meta-data
android:name="TOPDRAW.PLATFORM_SERVER"
android:value="http://melody.hi.a170.ottcn.com/hyperion.chimera" />
android:value="http://eastcity.fj.a176.ottcn.com:81/clutch" />
<meta-data
android:name="TOPDRAW.APPID"
android:value="td71b187fedb257ac0" />
android:value="EastCity" />
<!-- 移动埋点SDK -->
<meta-data
android:name="CMCC.APPKEY"
android:value="13e71c3ecc4d4b96f1b5b0e5141bd3e6" />
<!-- 未来NewTV -->
<meta-data
android:name="NewTV.APPID"
android:value="0e0777adb659479" />
<meta-data
android:name="TOPDRAW.APPSECRET"
android:value="432f53029ae58eef34ec9a6794975443" />
android:name="NewTV.channelCode"
android:value="\2626035001" />
<meta-data
android:name="NewTV.Appkey"
android:value="df4fc19c4673bf9b5e70a7a56ece35e5" />
<meta-data
android:name="NewTV.AppSecret"
android:value="ec695c7b7371db8dbd84a6d01e4c66a9" />
<activity
android:name="org.cocos2dx.javascript.AppActivity"
android:screenOrientation="sensorLandscape"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name"
android:usesCleartextTraffic="true"
android:theme="@style/ImageSplashStyle"
android:launchMode="singleTask"
android:taskAffinity="" >
android:screenOrientation="sensorLandscape"
android:taskAffinity=""
android:theme="@style/ImageSplashStyle"
android:usesCleartextTraffic="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
......@@ -73,5 +91,5 @@
</intent-filter>
</activity>
</application>
</manifest>
......
//package com.topdraw.component;
//
//import android.content.Context;
//import android.util.Log;
//import android.webkit.JavascriptInterface;
//
//import tv.icntv.logsdk.logSDK;
//
//public class NativeLogReporterNewTV {
//
// private static final String TAG = NativeLogReporterNewTV.class.getSimpleName();
//
// private static NativeLogReporterNewTV instance;
//
// private static logSDK sdk;
//
// private Context context;
//
// private NativeLogReporterNewTV(Context context, logSDK sdk) {
// this.context = context;
// this.sdk = sdk;
// }
//
// public static NativeLogReporterNewTV getInstance(Context context, logSDK sdk) {
// Log.d(TAG, "初始化LogReporter..." + instance);
// if (null == instance) {
// instance = new NativeLogReporterNewTV(context, sdk);
// }
// return instance;
// }
//
// public static void report(int i, String msg) {
// if (null != sdk) {
// Log.d(TAG, "log report | " + i + " " + msg);
// sdk.logUpload(i, null != msg ? msg : "");
// }
// }
//
//}
package com.topdraw.component;
import android.content.Context;
import android.util.Log;
import android.webkit.JavascriptInterface;
import tv.icntv.logsdk.logSDK;
public class NativeLogReporterNewTV {
private static final String TAG = NativeLogReporterNewTV.class.getSimpleName();
private static NativeLogReporterNewTV instance;
private static logSDK sdk;
private Context context;
private NativeLogReporterNewTV(Context context, logSDK sdk) {
this.context = context;
this.sdk = sdk;
}
public static NativeLogReporterNewTV getInstance(Context context, logSDK sdk) {
Log.d(TAG, "初始化LogReporter..." + instance);
if (null == instance) {
instance = new NativeLogReporterNewTV(context, sdk);
}
return instance;
}
public static void report(int i, String msg) {
if (null != sdk) {
Log.d(TAG, "log report | " + i + " " + msg);
sdk.logUpload(i, null != msg ? msg : "");
}
}
}
......
package com.topdraw.melody;
//import android.app.Application;
import android.content.Context;
import android.os.Handler;
import android.util.Log;
import android.widget.Toast;
import com.topdraw.sdk.*;
import com.topdraw.sdk.ITopdrawSDK;
import com.topdraw.sdk.TopdrawApplication;
import com.topdraw.sdk.TopdrawSDK;
import org.cocos2dx.javascript.AppActivity;
public class MelodyApplication extends TopdrawApplication {
public static final String TAG = "MelodyApplication";
private static String apiToken = "Nothing";
private static Context context;
public static final String ROOT_DIR = "/mnt/sdcard/fun";
public static ITopdrawSDK topdrawSDK;
public static AppActivity appActivity;
public static boolean authResult = false;
private static MelodyApplication app;
public static String TOPDRAW_API_PATH = "http://demo.cloud.api.findfun.topdraw.cn:38081/findfun";
private Handler mHandler = new Handler();
public static boolean isSDKInited;
public static ITopdrawSDK sdk;
@Override
public void onCreate() {
super.onCreate();
app = this;
this.context = this.getApplicationContext();
Log.d(TAG, "初始化SDK:currentThreadId" + Thread.currentThread().getId());
TopdrawSDK.init(context, "td71b187fedb257ac0", "432f53029ae58eef34ec9a6794975443", initListener);
PluginLoader.getInstance().init(getApplicationContext(), mHandler, TOPDRAW_API_PATH, "/plugin/plugin.json");
PluginLoader.getInstance().start();
OBiPluginLoader.getInstance().init(getApplicationContext());
//CrashHandler crashHandler = CrashHandler.getInstance();
//crashHandler.setCustomCrashHanler(getApplicationContext());
//MobclickAgent.UMAnalyticsConfig kk = new MobclickAgent.UMAnalyticsConfig(this,"5a168338a40fa377b500012b","amt");
//MobclickAgent.startWithConfigure(kk);
//ReStartExceptionHandler.getInstance().initReStartExceptionHandler(this);
}
/**
......@@ -69,65 +43,8 @@ public class MelodyApplication extends TopdrawApplication {
return app;
}
public static String getAPIToken() {
Log.d(TAG, "getAPIToken:[" + apiToken + "]");
return apiToken;
}
public static String getUserId() {
return topdrawSDK.getUserID();
}
public static Context getAppContext() {
return context;
}
/**
* 初始化apk所使用的listener
*/
private ITopdrawResultListener initListener = new ITopdrawResultListener() {
@Override
public void onResult(int i, String s, Object o) {
Log.d(TAG, "TopdrawSDK inited:[" + i + "]" + s);
if (i == 0) {
topdrawSDK = (ITopdrawSDK) o;
apiToken = topdrawSDK.getToken();
Log.d(TAG, "API Token: " + apiToken);
//topdrawSDK.auth(MelodyApplication.getAppContext(),apiToken,null,authListener);
} else {
apiToken = "Unreachable";
}
}
};
/**
* 认证所使用的Listener\
*/
private ITopdrawResultListener authListener = new ITopdrawResultListener() {
@Override
public void onResult(int i, String s, Object o) {
Log.d(TAG, "TopdrawSDK authed:[" + i + "]" + s);
if (i == 10) {
Log.d(TAG, "auth success");
authResult = true;
} else if (i == -2010) {
authResult = false;
System.out.println("auth failed");
}
}
};
private ITopdrawResultListener orderListener = new ITopdrawResultListener() {
@Override
public void onResult(int i, String s, Object o) {
Log.d(TAG, "TopdrawSDK ordered:[" + i + "]" + s);
if (i == 20) {
authResult = true;
Log.d(TAG, "order success");
} else {
Log.d(TAG, "order failed");
}
}
};
}
......
......@@ -63,11 +63,11 @@ public class TopdrawSDKWrapper {
}
public static String getAPIToken() {
return MelodyApplication.getAPIToken();
return MelodyApplication.sdk.getToken();
}
public static String getUserId() {
return MelodyApplication.getUserId();
return MelodyApplication.sdk.getUserID();
}
/**
......
......@@ -33,6 +33,9 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.IntentFilter;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.content.Intent;
......@@ -45,6 +48,8 @@ import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.webkit.CookieManager;
import android.webkit.JavascriptInterface;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.FrameLayout;
......@@ -52,12 +57,28 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.knowyou_jni.single.SDKUtil;
import com.topdraw.component.CocosMediaPlayer;
import com.topdraw.component.NewTVSDK;
import com.topdraw.forfun.R;
import com.topdraw.melody.CommonUtils;
import com.topdraw.melody.MelodyApplication;
import com.topdraw.melody.OBiPluginLoader;
import com.topdraw.melody.PluginLoader;
import com.topdraw.melody.TopdrawSDKWrapper;
import com.topdraw.sdk.ITopdrawResultListener;
import com.topdraw.sdk.ITopdrawSDK;
import com.topdraw.sdk.TopdrawSDK;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import tv.icntv.adsdk.AdSDK;
import tv.icntv.logsdk.logSDK;
import tv.icntv.ottlogin.loginSDK;
public class AppActivity extends Cocos2dxActivity {
private static String TAG = "AppActivity";
......@@ -71,13 +92,28 @@ public class AppActivity extends Cocos2dxActivity {
private RelativeLayout mRLSingleColor;
private RelativeLayout mOBiLayout;
public static boolean baminSDKInited = false;
public static String APP_KEY;
public static String APP_NAME;
public static String APP_TYPE;
public static String USER_ID;
private static String TOPDRAW_PLATFORM;
private static String TOPDRAW_PLATFORM_SERVER;
private static String TOPDRAW_APPID;
private static String TOPDRAW_APPSECRET;
public static String TOPDRAW_API_PATH = "http://demo.cloud.api.findfun.topdraw.cn:38081/findfun";
private final Handler mHandler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "判断APK是否安装。。。" + getExternalCacheDir().getPath());
checkNetwork(); //检查网络
initSdkData();
//----解决游戏页按返回退出时,背景图透明度过高,onPause和onResume中控制显示还是隐藏
singleView = LayoutInflater.from(this).inflate(R.layout.activity_main_single_color, null);
mRLSingleColor = singleView.findViewById(R.id.ll_single);
......@@ -135,6 +171,33 @@ public class AppActivity extends Cocos2dxActivity {
SDKWrapper.getInstance().init(this);
}
private void initSdkData() {
//init topdraw.jar-----
ApplicationInfo appInfo = null;
try {
PackageManager pm = getPackageManager();
appInfo = pm.getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
} catch (Exception e) {
}
TOPDRAW_PLATFORM = appInfo.metaData.getString("TOPDRAW.PLATFORM");
TOPDRAW_PLATFORM_SERVER = appInfo.metaData.getString("TOPDRAW.PLATFORM_SERVER");
TOPDRAW_APPID = appInfo.metaData.getString("TOPDRAW.APPID");
TOPDRAW_APPSECRET = appInfo.metaData.getString("TOPDRAW.APPSECRET");
TopdrawSDK.init(getApplicationContext(), TOPDRAW_PLATFORM, TOPDRAW_PLATFORM_SERVER, TOPDRAW_APPID, TOPDRAW_APPSECRET, initListener);
APP_KEY = appInfo.metaData.getString("CMCC.APPKEY");
APP_NAME = getString(R.string.app_name);
//init NewTV
NewTVSDK.getInstence(this).init(); //注意防止loading图片覆盖掉开机广告 fix jerry
PluginLoader.getInstance().init(getApplicationContext(), mHandler, TOPDRAW_API_PATH, "/plugin/plugin.json");
PluginLoader.getInstance().start();
OBiPluginLoader.getInstance().init(getApplicationContext());
}
//修改回默认主题,防止部分挖洞窗口有阴影
@Override
public void setTheme(int resid) {
......@@ -311,4 +374,68 @@ public class AppActivity extends Cocos2dxActivity {
public static void logInSceneE(String strLog) {
Log.e("logInSceneE", strLog);
}
private ITopdrawResultListener initListener = new ITopdrawResultListener() {
@Override
public void onResult(int result, String msg, Object obj) {
// LOG(TAG, "onResult " + result + " " + msg + " " + obj);
if (0 == result) {
MelodyApplication.sdk = (ITopdrawSDK) obj;
USER_ID = MelodyApplication.sdk.getOssUserID();
MelodyApplication.isSDKInited = true;
//局方埋点
try {
SDKUtil.isOpenLog = true;
int sdkResult = SDKUtil.getInstance().ky_initWithAppKey(AppActivity.this, APP_KEY,
getPackageManager().getPackageInfo(getPackageName(), 0).versionName);
baminSDKInited = (sdkResult == 0);
Map<String, Object> params = new HashMap<>();
params.put("appId", TOPDRAW_APPID);
params.put("userId", MelodyApplication.sdk.getUserID());
MelodyApplication.sdk.auth(AppActivity.this, MelodyApplication.sdk.getToken(), params, new ITopdrawResultListener() {
@Override
public void onResult(int i, String s, Object o) {
if (10 == i) {
NativeSystem.isAuthenticated = true;
} else {
NativeSystem.isAuthenticated = false;
}
if (baminSDKInited) {
HashMap<Object, Object> params = new HashMap<>();
params.put("APP_NAME", APP_NAME);
params.put("APP_TYPE", APP_TYPE);
params.put("USER_LOGIN", "1");
params.put("USER_ID", USER_ID);
params.put("USER_ORDER", NativeSystem.isAuthenticated ? "已订购" : "未订购");
SDKUtil.getInstance().ky_trackCustom(params);
SDKUtil.getInstance().ky_userSignIn(USER_ID);
}
}
});
} catch (Exception e) {
}
} else if (-1020 == result) {
Toast.makeText(AppActivity.this, "网络异常,请重试", Toast.LENGTH_LONG).show();
finish();
} else {
Toast.makeText(AppActivity.this, "启动异常,请重试", Toast.LENGTH_LONG).show();
finish();
}
}
};
private static class NativeSystem {
public static boolean isAuthenticated = false;
@JavascriptInterface
public void set(String key, String value) {
// LOG(TAG, "js call set() key=" + key + " value=" + value);
if ("isAuthenticated".equals(key) && "true".equals(value)) {
isAuthenticated = true;
}
}
}
}
......