lizhihui

优化接入逻辑流程跟文档demo

- 2022-05-18
- 优化对接demo逻辑跟文档
- 2019-09-02
- 修改PoolSdk_V2 assets/sdk assets/sdk.zip
- 2019-11-15
......
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="11" />
<bytecodeTargetLevel target="1.8" />
</component>
</project>
\ No newline at end of file
......
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<runningDeviceTargetSelectedWithDropDown>
<Target>
<type value="RUNNING_DEVICE_TARGET" />
<deviceKey>
<Key>
<type value="SERIAL_NUMBER" />
<value value="emulator-5560" />
</Key>
</deviceKey>
</Target>
</runningDeviceTargetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2022-05-18T09:17:58.724621500Z" />
</component>
</project>
\ No newline at end of file
......@@ -4,7 +4,7 @@
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="PLATFORM" />
<option name="testRunner" value="GRADLE" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
......@@ -13,8 +13,6 @@
<option value="$PROJECT_DIR$/app" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
<option name="useQualifiedModuleNames" value="true" />
</GradleProjectSettings>
</option>
</component>
......
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="JavaDoc" enabled="true" level="WARNING" enabled_by_default="true">
<option name="TOP_LEVEL_CLASS_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="" />
</value>
</option>
<option name="INNER_CLASS_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="" />
</value>
</option>
<option name="METHOD_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="@return@param@throws or @exception" />
</value>
</option>
<option name="FIELD_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="" />
</value>
</option>
<option name="IGNORE_DEPRECATED" value="false" />
<option name="IGNORE_JAVADOC_PERIOD" value="true" />
<option name="IGNORE_DUPLICATED_THROWS" value="false" />
<option name="IGNORE_POINT_TO_ITSELF" value="false" />
<option name="myAdditionalJavadocTags" value="date" />
</inspection_tool>
</profile>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ASMIdeaPluginConfiguration">
<asm skipDebug="true" skipFrames="true" skipCode="false" expandFrames="false" />
<groovy codeStyle="LEGACY" />
</component>
<component name="DesignSurface">
<option name="filePathToZoomLevelMap">
<map>
<entry key="..\:/_Git/public_sdk_android/demo/app/src/main/res/layout/public_sdk_self_test.xml" value="0.18697916666666667" />
</map>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
......
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
</set>
</option>
</component>
</project>
\ No newline at end of file
......@@ -5,22 +5,20 @@
<!-- SDK start -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 国内需要用公共SDK的后台数据功能需要以下权限(非必要) -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- <uses-permission android:name="android.permission.READ_PHONE_STATE" />-->
<!-- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />-->
<!-- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />-->
<!-- SDK end -->
<application
android:name="com.gzpublic.app.sdk.application.PoolSDKApplication"
android:allowBackup="false"
android:icon="@drawable/public_sdk_self_ic_launcher"
android:label="@string/app_name">
<activity
android:name="com.youai.foolsdk.demo.AppActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
......
<?xml version="1.0" ?>
<config>
<sdkconfig channelparameter1="" channelparameter2="" custom="{}" gamechannelid="" gamesimplename="fytx_test" logincheckurl="http://183.136.223.85:9010/logincheck/check" logreporturl="http://183.136.223.85:9030/sdk/statistic" paycheckurl="http://183.136.223.85:9020/paycheck/confirm" payorderurl="http://183.136.223.85:9020/paycheck/create" sdksimplename="poolsdk" sdkversioncode="V1_0" usertype="739"/>
<sdkconfig channelparameter1="" channelparameter2="" custom="{}" gamechannelid=""
gamesimplename="fytx_test" logincheckurl="http://183.136.236.208:9010/logincheck/check"
logreporturl="http://183.136.236.208:9030/sdk/statistic"
paycheckurl="http://183.136.236.208:9020/paycheck/confirm"
payorderurl="http://183.136.236.208:9020/paycheck/create" sdksimplename="poolsdk"
sdkversioncode="V1_0" usertype="739" />
</config>
......
......@@ -105,9 +105,9 @@ public class AppActivity extends Activity implements OnClickListener {
PoolSdkLog.setIsShowLog(true);//游戏无需设置该接口
PoolSdkConfig.readPoolSdkConfigData(this);
//ps!公共SDK会收集用户隐私信息,游戏需弹窗显示隐私条款,再调用公共SDK的初始化接口
//国内游戏接入如果需要使用平台统计等功能,需要获取手机识别号和读写SD卡权限再调用初始化接口
//海外接入直接调用SDK初始化接口即可
if(getApplicationInfo().targetSdkVersion >= 23 && Build.VERSION.SDK_INT >= 23){
requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE,Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
}else {
......@@ -125,6 +125,7 @@ public class AppActivity extends Activity implements OnClickListener {
private void init( Bundle savedInstanceState){
//PoolSDK初始化接口
//公共SDK会收集用户隐私信息,游戏需弹窗显示隐私条款,再调用公共SDK的初始化接口
PoolSdkHelper.init(this, new PoolSDKCallBackListener() {
@Override
public void poolSdkCallBack(int code, String msg) {
......@@ -307,7 +308,7 @@ public class AppActivity extends Activity implements OnClickListener {
}else if (view == btPay) {
pay();
}else if (view == btLogout) {
//logout();
// logout();
}else if (view == btSubRoleInfo) {
//角色升级
submitRoleData(11,PoolRoleInfo.Type_RoleUpgrade);
......@@ -320,10 +321,14 @@ public class AppActivity extends Activity implements OnClickListener {
}else if(view == btQueryProducts){
queryProducts();
}else if (view == pb_bt_verifyname){
PoolSdkLog.logError("游戏demo获取到的生日:"+getBirthday());
}
}
private String getBirthday(){
return PoolSdkHelper.verifyRealName(mContext);
}
private void trackEvent(){
//使用AF和FB 等统计功能 需要调用该统计接口 value 具体参考文档
Map<String,Object> valueMap = new HashMap<>();
......@@ -352,6 +357,8 @@ public class AppActivity extends Activity implements OnClickListener {
upTx("登录成功回调:userType = " + userType
+ "; timestamp = " + timestamp + "; serverSign = "
+ serverSign + "; openId = " + openId);
submitRoleData(10,PoolRoleInfo.Type_EnterGame);
}
@Override
......@@ -362,7 +369,7 @@ public class AppActivity extends Activity implements OnClickListener {
});
//单机游戏无服务端支付结果查询接口,网游无需接入
PoolPayOrderConfirmHandler.getInstance(this, 2000, 1000).startOrderConfirmOp(mPoolPayListener);
// PoolPayOrderConfirmHandler.getInstance(this, 2000, 1000).startOrderConfirmOp(mPoolPayListener);
}
private void pay() {
......@@ -431,7 +438,7 @@ public class AppActivity extends Activity implements OnClickListener {
poolRoleInfo.setReborn("0");//角色转生等级
poolRoleInfo.setCheckPointId("1");//关卡id
poolRoleInfo.setCheckPointName("关卡名");//关卡名
poolRoleInfo.setCallType(PoolRoleInfo.Type_EnterGame);//进入游戏(第一次创建角色后需再调用一次进入游戏)
poolRoleInfo.setCallType(callType);//进入游戏(第一次创建角色后需再调用一次进入游戏)
// poolRoleInfo.setCallType(PoolRoleInfo.Type_CreateRole);//创建角色
// poolRoleInfo.setCallType(PoolRoleInfo.Type_RoleUpgrade);//角色升级
......@@ -519,7 +526,7 @@ public class AppActivity extends Activity implements OnClickListener {
private TextView txMsg,txSdkMsg;
private Activity mContext;
//该退出界面只为一个例子,游戏自己实现
private void showGameExitTips() {
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
int ic_dialog_alert_id = getRedIdByName("ic_dialog_alert", "drawable");
......
......@@ -46,6 +46,12 @@
android:layout_height="wrap_content"
android:visibility="gone"
android:text="注销" />
<Button
android:id="@+id/pb_bt_verifyname"
style="?android:attr/buttonStyleSmall"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="获取生日判断是否成年" />
</LinearLayout>
<LinearLayout
......@@ -74,28 +80,23 @@
style="?android:attr/buttonStyleSmall"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="切换账号" />
android:text="注销/切换账号" />
<Button
android:id="@+id/pb_bt_openbbs"
style="?android:attr/buttonStyleSmall"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="事件上报" />
android:text="事件上报(非必接)" />
<Button
android:id="@+id/pool_query_products_id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="商品查询(国内不用接)" />
</LinearLayout>
</LinearLayout>
<Button
android:id="@+id/pb_bt_verifyname"
style="?android:attr/buttonStyleSmall"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="实名认证" />
<Button
android:id="@+id/pool_query_products_id"
android:layout_width="195dp"
android:layout_height="wrap_content"
android:text="商品查询" />
<TextView
android:layout_width="fill_parent"
......
......@@ -2,13 +2,7 @@
## 接入必读
注意!
游戏如有需要获取以下权限的,收到权限回调之后再调用公共SDK的初始化接口
如无需要获取以下权限,则直接调用公共SDK的初始化接口
```xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
```
因国家相关法规规定,不能未向用户告知同意收集用户信息,游戏自行弹窗提示用户同意之后,再调用公共SDK的初始化接口
`
接入公共SDK测试没问题后游戏打出为 母包 ,后续使用打包工具打对应 渠道包
......@@ -152,7 +146,7 @@ public static void submitRoleData(final PoolRoleInfo poolRoleInfo,final PoolRole
| poolRoleInfo | 角色数据实体类 |
| poolRoleListener | 角色数据提交结果回调通知,需实现 |
PoolRoleInfo 实体类字段说明(以下参数都为必传参数,如游戏没有的传 "无" 或者 "0")
PoolRoleInfo 实体类字段说明(以下参数都为必传参数,如游戏没有的传 "无" 或者 "0")
| 字段名 | 说明 |
| -------------- | ---------------------------------------- |
| callType | 调用类型 Type_EnterGame 进入游戏(必接); Type_CreatRole 创建角色(必接); Type_RoleUpgrade 为角色更新(vip等级升级也由此类型上报)(必接); Type_SelectServer 为选择服务器(选接); Type_ExitServer 为退出服务器 (选接); Type_Change_RoleName 为改名(选接); Type_SelectRole 为选角(选接); Type_CheckPoint_Start 为关卡开始(选接); Type_CheckPoint_End 为关卡结束(选接);|
......@@ -244,7 +238,7 @@ public static void pay(final PoolPayInfo poolPayInfo,final PoolPayListener poolP
支付信息实体类(PoolPayInfo)字段说明
| 参数 | 说明 |
| ----------- | ------------------- |
| amount | 金额(单位元,必须大于 0,需传入整型数据`传小数时兑换比例和金额相乘为整数(即金额传 "0.99" 兑换比例传 "100")`) |
| amount | 金额(单位元,必须大于 0,需传入整型数据`海外游戏传小数时兑换比例和金额相乘为整数(即金额传 "0.99" 兑换比例传 "100")`) |
| productId | 商品 ID(如果没有可以传空字符串) |
| productName | 商品描述 |
| roleid | 角色 id |
......@@ -299,7 +293,7 @@ public static void pay(final PoolPayInfo poolPayInfo,final PoolPayListener poolP
#### 2.6、检测 SDK 是否含有用户中心接口(必接)
说明:如果接口返回为 true,表示需要游戏方在合适的界面中添加一个用户中心的按钮,点击按钮时调用文档中 2.7 的用户中心接口;
说明:如果接口返回为 true表示需要游戏方在合适的界面中添加一个用户中心的按钮,点击按钮时调用文档中 2.7 的用户中心接口;
如果返回 false,则不做处理
......@@ -309,7 +303,7 @@ public static boolean hasChannelCenter()
```
```java
PoolSdkHelper.hasChannelCenter();//判断渠道SDK有无用户中心
PoolSdkHelper.hasChannelCenter();//判断渠道SDK有无用户中心
```
#### 2.7、用户中心接口(必接)
......@@ -726,6 +720,6 @@ e.printStackTrace();
```xml
android:authorities="com.xxx.provider"
<!-- 写为下面这样可 -->
<!-- 写为下面这样可 -->
android:authorities="originPackageTag.provider"
```
......
No preview for this file type