Showing
41 changed files
with
843 additions
and
0 deletions
publicAndroidSDK/.DS_Store
0 → 100644
No preview for this file type
publicAndroidSDK/assets/poolsdk.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<config> | ||
| 3 | + | ||
| 4 | + <sdkconfig | ||
| 5 | + appClientKey="9DtxPtUrzYU0uTBGGMJzKyhKAK5t2O9i" | ||
| 6 | + appId="Dz8T95TrG9d/WVIWAPZviuaV7Tbko3oAlqDCYpNKkTU=" | ||
| 7 | + channelparameter1="4uc0/gEfNt4=" | ||
| 8 | + channelparameter2="4uc0/gEfNt4=" | ||
| 9 | + custom="T7w9VvhA5tQ=" | ||
| 10 | + gamechannelid="4uc0/gEfNt4=" | ||
| 11 | + gamesimplename="qcFlv/sgri8oQ6xDbE0odg==" | ||
| 12 | + logincheckurl="Xwm2VZk4IZHw4pR8WSu0JRSPl5jMDzA8+5nKH+jNJckQW+5uHcG5Mxl+gMWO6s8PhqrR0VX7irk=" | ||
| 13 | + paycheckurl="Xwm2VZk4IZHw4pR8WSu0JRSPl5jMDzA8+5nKH+jNJclRWohb/BPqZ4ChH88g5ubtvsBW3D32B8c=" | ||
| 14 | + payorderurl="Xwm2VZk4IZHw4pR8WSu0JRSPl5jMDzA8+5nKH+jNJclRWohb/BPqZ4SO5qrmq1RBsIoFXavzUfg=" | ||
| 15 | + sdksimplename="vWVsU5Ogkh8=" | ||
| 16 | + sdkversioncode="BVPAQexcXDk=" | ||
| 17 | + styleName="4N7gnKed6uk=" | ||
| 18 | + usertype="gssaXIIEiL0=" | ||
| 19 | + weixinId="x3d4hSeP9KFDTFusyU+iB/9NgyvRyoop" | ||
| 20 | + payCallbackUrl = "http://51wang" | ||
| 21 | + /> | ||
| 22 | + | ||
| 23 | +</config> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<classpath> | ||
| 3 | + <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> | ||
| 4 | + <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> | ||
| 5 | + <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> | ||
| 6 | + <classpathentry kind="src" path="src"/> | ||
| 7 | + <classpathentry kind="src" path="gen"/> | ||
| 8 | + <classpathentry kind="output" path="bin/classes"/> | ||
| 9 | +</classpath> |
publicAndroidSDK/demo/Demo_PoolSdk/.project
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<projectDescription> | ||
| 3 | + <name>Demo_PoolSdk</name> | ||
| 4 | + <comment></comment> | ||
| 5 | + <projects> | ||
| 6 | + </projects> | ||
| 7 | + <buildSpec> | ||
| 8 | + <buildCommand> | ||
| 9 | + <name>org.python.pydev.PyDevBuilder</name> | ||
| 10 | + <arguments> | ||
| 11 | + </arguments> | ||
| 12 | + </buildCommand> | ||
| 13 | + <buildCommand> | ||
| 14 | + <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name> | ||
| 15 | + <arguments> | ||
| 16 | + </arguments> | ||
| 17 | + </buildCommand> | ||
| 18 | + <buildCommand> | ||
| 19 | + <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name> | ||
| 20 | + <arguments> | ||
| 21 | + </arguments> | ||
| 22 | + </buildCommand> | ||
| 23 | + <buildCommand> | ||
| 24 | + <name>org.eclipse.jdt.core.javabuilder</name> | ||
| 25 | + <arguments> | ||
| 26 | + </arguments> | ||
| 27 | + </buildCommand> | ||
| 28 | + <buildCommand> | ||
| 29 | + <name>com.android.ide.eclipse.adt.ApkBuilder</name> | ||
| 30 | + <arguments> | ||
| 31 | + </arguments> | ||
| 32 | + </buildCommand> | ||
| 33 | + </buildSpec> | ||
| 34 | + <natures> | ||
| 35 | + <nature>com.android.ide.eclipse.adt.AndroidNature</nature> | ||
| 36 | + <nature>org.eclipse.jdt.core.javanature</nature> | ||
| 37 | + <nature>org.python.pydev.pythonNature</nature> | ||
| 38 | + </natures> | ||
| 39 | +</projectDescription> |
| 1 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
| 2 | +<?eclipse-pydev version="1.0"?><pydev_project> | ||
| 3 | +<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property> | ||
| 4 | +<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.7</pydev_property> | ||
| 5 | +</pydev_project> |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 3 | + package="com.youai.foolsdk.demo" | ||
| 4 | + android:versionCode="1" | ||
| 5 | + android:versionName="1.0" > | ||
| 6 | + | ||
| 7 | + <uses-sdk | ||
| 8 | + android:minSdkVersion="8" | ||
| 9 | + android:targetSdkVersion="19" /> | ||
| 10 | + | ||
| 11 | + <uses-permission android:name="android.permission.INTERNET" > | ||
| 12 | + </uses-permission> | ||
| 13 | + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> | ||
| 14 | + <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> | ||
| 15 | + <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> | ||
| 16 | + <uses-permission android:name="android.permission.INTERNET" /> | ||
| 17 | + <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> | ||
| 18 | + <uses-permission android:name="android.permission.READ_PHONE_STATE" /> | ||
| 19 | + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> | ||
| 20 | + <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> | ||
| 21 | + <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> | ||
| 22 | + <uses-permission android:name="android.permission.READ_LOGS" /> | ||
| 23 | + <uses-permission android:name="android.permission.GET_TASKS" /> | ||
| 24 | + | ||
| 25 | + <application | ||
| 26 | + android:name="com.gzyouai.publicsdk.application.PoolSDKApplication" | ||
| 27 | + android:allowBackup="true" | ||
| 28 | + android:icon="@drawable/public_sdk_self_ic_launcher" | ||
| 29 | + android:label="@string/app_name" > | ||
| 30 | + <activity | ||
| 31 | + android:name="com.youai.foolsdk.demo.AppActivity" | ||
| 32 | + android:configChanges="keyboardHidden|orientation|screenSize" | ||
| 33 | + android:label="@string/app_name" | ||
| 34 | + android:screenOrientation="landscape" | ||
| 35 | + android:theme="@android:style/Theme.NoTitleBar.Fullscreen" > | ||
| 36 | + <intent-filter> | ||
| 37 | + <action android:name="android.intent.action.MAIN" /> | ||
| 38 | + | ||
| 39 | + <category android:name="android.intent.category.LAUNCHER" /> | ||
| 40 | + </intent-filter> | ||
| 41 | + </activity> | ||
| 42 | + | ||
| 43 | + <!-- start YouaiSDK --> | ||
| 44 | + <receiver | ||
| 45 | + android:name="com.gzyouai.fengniao.sdk.framework.AppInstallReceiver" | ||
| 46 | + android:label="@string/app_name" > | ||
| 47 | + <intent-filter> | ||
| 48 | + <action android:name="android.intent.action.PACKAGE_ADDED" /> | ||
| 49 | + <action android:name="android.intent.action.PACKAGE_REPLACED" /> | ||
| 50 | + <action android:name="android.intent.action.PACKAGE_REMOVED" /> | ||
| 51 | + | ||
| 52 | + <data android:scheme="package" /> | ||
| 53 | + </intent-filter> | ||
| 54 | + </receiver> | ||
| 55 | + <!-- start i9133 --> | ||
| 56 | + <activity | ||
| 57 | + android:name=".wxapi.WXPayEntryActivity" | ||
| 58 | + android:exported="true" | ||
| 59 | + android:launchMode="singleTop" /> | ||
| 60 | + <activity | ||
| 61 | + android:name="com.youai.sdk.YouaiSDK" | ||
| 62 | + android:label="youai_sdk" | ||
| 63 | + android:theme="@android:style/Theme.Dialog" > | ||
| 64 | + </activity> | ||
| 65 | + | ||
| 66 | + <service | ||
| 67 | + android:name="com.youai.sdk.YouaiService" | ||
| 68 | + android:enabled="true" > | ||
| 69 | + <intent-filter> | ||
| 70 | + <action android:name="com.youai.sdk.YouaiService" /> | ||
| 71 | + </intent-filter> | ||
| 72 | + </service> | ||
| 73 | + <service | ||
| 74 | + android:name="com.youai.sdk.FloatViewService" | ||
| 75 | + android:enabled="true" | ||
| 76 | + android:exported="true" > | ||
| 77 | + <intent-filter> | ||
| 78 | + <action android:name="com.youai.sdk.FloatViewService" /> | ||
| 79 | + </intent-filter> | ||
| 80 | + </service> | ||
| 81 | + | ||
| 82 | + <receiver android:name="com.youai.sdk.Receiver" > | ||
| 83 | + <intent-filter> | ||
| 84 | + <action android:name="android.intent.action.BOOT_COMPLETED" > | ||
| 85 | + </action> | ||
| 86 | + | ||
| 87 | + <category android:name="android.intent.category.LAUNCHER" /> | ||
| 88 | + </intent-filter> | ||
| 89 | + </receiver> | ||
| 90 | + | ||
| 91 | + <activity | ||
| 92 | + android:name="com.alipay.sdk.app.H5PayActivity" | ||
| 93 | + android:configChanges="orientation|keyboardHidden|navigation" | ||
| 94 | + android:exported="false" | ||
| 95 | + android:screenOrientation="behind" > | ||
| 96 | + </activity> | ||
| 97 | + <activity | ||
| 98 | + android:name="com.alipay.sdk.auth.AuthActivity" | ||
| 99 | + android:configChanges="orientation|keyboardHidden|navigation" | ||
| 100 | + android:exported="false" | ||
| 101 | + android:screenOrientation="behind" > | ||
| 102 | + </activity> | ||
| 103 | + <!-- end i9133 --> | ||
| 104 | + | ||
| 105 | + </application> | ||
| 106 | + | ||
| 107 | +</manifest> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +# This file is used to override default values used by the Ant build system. | ||
| 2 | +# | ||
| 3 | +# This file must be checked into Version Control Systems, as it is | ||
| 4 | +# integral to the build system of your project. | ||
| 5 | + | ||
| 6 | +# This file is only used by the Ant script. | ||
| 7 | + | ||
| 8 | +# You can use this to override default values such as | ||
| 9 | +# 'source.dir' for the location of your java source folder and | ||
| 10 | +# 'out.dir' for the location of your output folder. | ||
| 11 | + | ||
| 12 | +# You can also use it define how the release builds are signed by declaring | ||
| 13 | +# the following properties: | ||
| 14 | +# 'key.store' for the location of your keystore and | ||
| 15 | +# 'key.alias' for the name of the key to use. | ||
| 16 | +# The password will be asked during the build when you use the 'release' target. | ||
| 17 | + |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<config> | ||
| 3 | + | ||
| 4 | + <sdkconfig | ||
| 5 | + appClientKey="9DtxPtUrzYU0uTBGGMJzKyhKAK5t2O9i" | ||
| 6 | + appId="Dz8T95TrG9d/WVIWAPZviuaV7Tbko3oAlqDCYpNKkTU=" | ||
| 7 | + channelparameter1="4uc0/gEfNt4=" | ||
| 8 | + channelparameter2="4uc0/gEfNt4=" | ||
| 9 | + custom="T7w9VvhA5tQ=" | ||
| 10 | + gamechannelid="4uc0/gEfNt4=" | ||
| 11 | + gamesimplename="qcFlv/sgri8oQ6xDbE0odg==" | ||
| 12 | + logincheckurl="Xwm2VZk4IZHw4pR8WSu0JRSPl5jMDzA8+5nKH+jNJckQW+5uHcG5Mxl+gMWO6s8PhqrR0VX7irk=" | ||
| 13 | + paycheckurl="Xwm2VZk4IZHw4pR8WSu0JRSPl5jMDzA8+5nKH+jNJclRWohb/BPqZ4ChH88g5ubtvsBW3D32B8c=" | ||
| 14 | + payorderurl="Xwm2VZk4IZHw4pR8WSu0JRSPl5jMDzA8+5nKH+jNJclRWohb/BPqZ4SO5qrmq1RBsIoFXavzUfg=" | ||
| 15 | + sdksimplename="vWVsU5Ogkh8=" | ||
| 16 | + sdkversioncode="BVPAQexcXDk=" | ||
| 17 | + styleName="yvfh/4zhaEQ=" | ||
| 18 | + usertype="gssaXIIEiL0=" | ||
| 19 | + weixinId="x3d4hSeP9KFDTFusyU+iB/9NgyvRyoop" | ||
| 20 | + payCallbackUrl = "http://51wang" | ||
| 21 | + /> | ||
| 22 | + | ||
| 23 | +</config> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
40.1 KB
publicAndroidSDK/demo/Demo_PoolSdk/build.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<project name="PoolSdk" default="help"> | ||
| 3 | + | ||
| 4 | + <!-- The local.properties file is created and updated by the 'android' tool. | ||
| 5 | + It contains the path to the SDK. It should *NOT* be checked into | ||
| 6 | + Version Control Systems. --> | ||
| 7 | + <property file="local.properties" /> | ||
| 8 | + | ||
| 9 | + <!-- The ant.properties file can be created by you. It is only edited by the | ||
| 10 | + 'android' tool to add properties to it. | ||
| 11 | + This is the place to change some Ant specific build properties. | ||
| 12 | + Here are some properties you may want to change/update: | ||
| 13 | + | ||
| 14 | + source.dir | ||
| 15 | + The name of the source directory. Default is 'src'. | ||
| 16 | + out.dir | ||
| 17 | + The name of the output directory. Default is 'bin'. | ||
| 18 | + | ||
| 19 | + For other overridable properties, look at the beginning of the rules | ||
| 20 | + files in the SDK, at tools/ant/build.xml | ||
| 21 | + | ||
| 22 | + Properties related to the SDK location or the project target should | ||
| 23 | + be updated using the 'android' tool with the 'update' action. | ||
| 24 | + | ||
| 25 | + This file is an integral part of the build system for your | ||
| 26 | + application and should be checked into Version Control Systems. | ||
| 27 | + | ||
| 28 | + --> | ||
| 29 | + <property file="ant.properties" /> | ||
| 30 | + | ||
| 31 | + <!-- if sdk.dir was not set from one of the property file, then | ||
| 32 | + get it from the ANDROID_HOME env var. | ||
| 33 | + This must be done before we load project.properties since | ||
| 34 | + the proguard config can use sdk.dir --> | ||
| 35 | + <property environment="env" /> | ||
| 36 | + <condition property="sdk.dir" value="${env.ANDROID_HOME}"> | ||
| 37 | + <isset property="env.ANDROID_HOME" /> | ||
| 38 | + </condition> | ||
| 39 | + | ||
| 40 | + <!-- The project.properties file is created and updated by the 'android' | ||
| 41 | + tool, as well as ADT. | ||
| 42 | + | ||
| 43 | + This contains project specific properties such as project target, and library | ||
| 44 | + dependencies. Lower level build properties are stored in ant.properties | ||
| 45 | + (or in .classpath for Eclipse projects). | ||
| 46 | + | ||
| 47 | + This file is an integral part of the build system for your | ||
| 48 | + application and should be checked into Version Control Systems. --> | ||
| 49 | + <loadproperties srcFile="project.properties" /> | ||
| 50 | + | ||
| 51 | + <!-- quick check on sdk.dir --> | ||
| 52 | + <fail | ||
| 53 | + message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable." | ||
| 54 | + unless="sdk.dir" | ||
| 55 | + /> | ||
| 56 | + | ||
| 57 | + <!-- | ||
| 58 | + Import per project custom build rules if present at the root of the project. | ||
| 59 | + This is the place to put custom intermediary targets such as: | ||
| 60 | + -pre-build | ||
| 61 | + -pre-compile | ||
| 62 | + -post-compile (This is typically used for code obfuscation. | ||
| 63 | + Compiled code location: ${out.classes.absolute.dir} | ||
| 64 | + If this is not done in place, override ${out.dex.input.absolute.dir}) | ||
| 65 | + -post-package | ||
| 66 | + -post-build | ||
| 67 | + -pre-clean | ||
| 68 | + --> | ||
| 69 | + <import file="custom_rules.xml" optional="true" /> | ||
| 70 | + | ||
| 71 | + <!-- Import the actual build file. | ||
| 72 | + | ||
| 73 | + To customize existing targets, there are two options: | ||
| 74 | + - Customize only one target: | ||
| 75 | + - copy/paste the target into this file, *before* the | ||
| 76 | + <import> task. | ||
| 77 | + - customize it to your needs. | ||
| 78 | + - Customize the whole content of build.xml | ||
| 79 | + - copy/paste the content of the rules files (minus the top node) | ||
| 80 | + into this file, replacing the <import> task. | ||
| 81 | + - customize to your needs. | ||
| 82 | + | ||
| 83 | + *********************** | ||
| 84 | + ****** IMPORTANT ****** | ||
| 85 | + *********************** | ||
| 86 | + In all cases you must update the value of version-tag below to read 'custom' instead of an integer, | ||
| 87 | + in order to avoid having your file be overridden by tools such as "android update project" | ||
| 88 | + --> | ||
| 89 | + <!-- version-tag: 1 --> | ||
| 90 | + <import file="${sdk.dir}/tools/ant/build.xml" /> | ||
| 91 | + | ||
| 92 | +</project> |
50.2 KB
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
publicAndroidSDK/demo/Demo_PoolSdk/lint.xml
0 → 100644
| 1 | +# This file is automatically generated by Android Tools. | ||
| 2 | +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! | ||
| 3 | +# | ||
| 4 | +# This file must *NOT* be checked into Version Control Systems, | ||
| 5 | +# as it contains information specific to your local configuration. | ||
| 6 | + | ||
| 7 | +# location of the SDK. This is only used by Ant | ||
| 8 | +# For customization when using a Version Control System, please read the | ||
| 9 | +# header note. | ||
| 10 | +sdk.dir=D:\\android\\sdk |
| 1 | +# To enable ProGuard in your project, edit project.properties | ||
| 2 | +# to define the proguard.config property as described in that file. | ||
| 3 | +# | ||
| 4 | +# Add project specific ProGuard rules here. | ||
| 5 | +# By default, the flags in this file are appended to flags specified | ||
| 6 | +# in ${sdk.dir}/tools/proguard/proguard-android.txt | ||
| 7 | +# You can edit the include path and order by changing the ProGuard | ||
| 8 | +# include property in project.properties. | ||
| 9 | +# | ||
| 10 | +# For more details, see | ||
| 11 | +# http://developer.android.com/guide/developing/tools/proguard.html | ||
| 12 | + | ||
| 13 | +# Add any project specific keep options here: | ||
| 14 | + | ||
| 15 | +# If your project uses WebView with JS, uncomment the following | ||
| 16 | +# and specify the fully qualified class name to the JavaScript interface | ||
| 17 | +# class: | ||
| 18 | +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { | ||
| 19 | +# public *; | ||
| 20 | +#} |
| 1 | +# This file is automatically generated by Android Tools. | ||
| 2 | +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! | ||
| 3 | +# | ||
| 4 | +# This file must be checked in Version Control Systems. | ||
| 5 | +# | ||
| 6 | +# To customize properties used by the Ant build system edit | ||
| 7 | +# "ant.properties", and override values to adapt the script to your | ||
| 8 | +# project structure. | ||
| 9 | +# | ||
| 10 | +# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): | ||
| 11 | +#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt | ||
| 12 | + | ||
| 13 | +# Project target. | ||
| 14 | +target=android-19 |
5.71 KB
6.39 KB
5.59 KB
5.72 KB
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<selector xmlns:android="http://schemas.android.com/apk/res/android" > | ||
| 3 | + <item android:drawable="@drawable/public_sdk_self_demo_btn_main_s" android:state_selected="true"/> | ||
| 4 | + <item android:drawable="@drawable/public_sdk_self_demo_btn_main_s" android:state_pressed="true"/> | ||
| 5 | + <item android:drawable="@drawable/public_sdk_self_demo_btn_main_n"/> | ||
| 6 | +</selector> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<selector xmlns:android="http://schemas.android.com/apk/res/android" > | ||
| 3 | + <item android:drawable="@drawable/public_sdk_self_demo_btn_login_s" android:state_selected="true"/> | ||
| 4 | + <item android:drawable="@drawable/public_sdk_self_demo_btn_login_s" android:state_pressed="true"/> | ||
| 5 | + <item android:drawable="@drawable/public_sdk_self_demo_btn_login_n"/> | ||
| 6 | +</selector> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 3 | + android:layout_width="match_parent" | ||
| 4 | + android:layout_height="match_parent" | ||
| 5 | + android:background="@drawable/public_sdk_self_demo_main" > | ||
| 6 | + | ||
| 7 | + <Button | ||
| 8 | + android:id="@+id/ya_pay_bt" | ||
| 9 | + android:layout_width="wrap_content" | ||
| 10 | + android:layout_height="wrap_content" | ||
| 11 | + android:layout_alignParentLeft="true" | ||
| 12 | + android:layout_alignParentTop="true" | ||
| 13 | + android:layout_marginLeft="14dp" | ||
| 14 | + android:layout_marginTop="53dp" | ||
| 15 | + android:background="@drawable/public_sdk_self_ya_bt_selector" | ||
| 16 | + android:onClick="yaOnClick"/> | ||
| 17 | + | ||
| 18 | + <Button | ||
| 19 | + android:id="@+id/ya_submit_role_data_bt" | ||
| 20 | + android:layout_width="wrap_content" | ||
| 21 | + android:layout_height="wrap_content" | ||
| 22 | + android:layout_alignLeft="@+id/ya_pay_bt" | ||
| 23 | + android:layout_alignParentBottom="true" | ||
| 24 | + android:layout_marginBottom="75dp" | ||
| 25 | + android:background="@drawable/public_sdk_self_ya_bt_selector" | ||
| 26 | + android:onClick="yaOnClick"/> | ||
| 27 | + | ||
| 28 | + <Button | ||
| 29 | + android:id="@+id/ya_channel_center" | ||
| 30 | + android:layout_width="wrap_content" | ||
| 31 | + android:layout_height="wrap_content" | ||
| 32 | + android:layout_alignParentRight="true" | ||
| 33 | + android:layout_alignTop="@+id/ya_pay_bt" | ||
| 34 | + android:background="@drawable/public_sdk_self_ya_bt_selector" | ||
| 35 | + android:onClick="yaOnClick"/> | ||
| 36 | + | ||
| 37 | + <Button | ||
| 38 | + android:id="@+id/ya_switch_account_bt" | ||
| 39 | + android:layout_width="wrap_content" | ||
| 40 | + android:layout_height="wrap_content" | ||
| 41 | + android:layout_alignParentRight="true" | ||
| 42 | + android:layout_alignTop="@+id/ya_submit_role_data_bt" | ||
| 43 | + android:background="@drawable/public_sdk_self_ya_bt_selector" | ||
| 44 | + android:onClick="yaOnClick" /> | ||
| 45 | + | ||
| 46 | + <Button | ||
| 47 | + android:id="@+id/forum_bt" | ||
| 48 | + android:layout_width="wrap_content" | ||
| 49 | + android:layout_height="wrap_content" | ||
| 50 | + android:layout_centerHorizontal="true" | ||
| 51 | + android:layout_centerVertical="true" | ||
| 52 | + android:background="@drawable/public_sdk_self_ya_bt_selector" | ||
| 53 | + android:onClick="yaOnClick" /> | ||
| 54 | + | ||
| 55 | +</RelativeLayout> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 3 | + android:layout_width="match_parent" | ||
| 4 | + android:background="@drawable/public_sdk_self_sdk_login_bg" | ||
| 5 | + android:layout_height="match_parent" > | ||
| 6 | + | ||
| 7 | + <Button | ||
| 8 | + android:id="@+id/ya_login_bt" | ||
| 9 | + android:layout_width="wrap_content" | ||
| 10 | + android:layout_height="wrap_content" | ||
| 11 | + android:layout_alignParentRight="true" | ||
| 12 | + android:layout_alignParentTop="true" | ||
| 13 | + android:layout_marginRight="28dp" | ||
| 14 | + android:layout_marginTop="21dp" | ||
| 15 | + android:background="@drawable/public_sdk_self_ya_login_bt_selector" | ||
| 16 | + android:onClick="yaOnClick" /> | ||
| 17 | + | ||
| 18 | + <Button | ||
| 19 | + android:id="@+id/ya_enter_game_bt" | ||
| 20 | + android:layout_width="wrap_content" | ||
| 21 | + android:layout_height="wrap_content" | ||
| 22 | + android:layout_alignLeft="@+id/ya_login_bt" | ||
| 23 | + android:layout_below="@+id/ya_login_bt" | ||
| 24 | + android:layout_marginTop="28dp" | ||
| 25 | + android:background="@drawable/public_sdk_self_ya_login_bt_selector" | ||
| 26 | + android:onClick="yaOnClick"/> | ||
| 27 | + | ||
| 28 | +</RelativeLayout> |
| 1 | +package com.youai.foolsdk.demo; | ||
| 2 | + | ||
| 3 | +import android.app.Activity; | ||
| 4 | +import android.app.AlertDialog; | ||
| 5 | +import android.content.DialogInterface; | ||
| 6 | +import android.content.Intent; | ||
| 7 | +import android.content.res.Configuration; | ||
| 8 | +import android.os.Bundle; | ||
| 9 | +import android.view.KeyEvent; | ||
| 10 | +import android.view.View; | ||
| 11 | +import android.widget.Button; | ||
| 12 | +import android.widget.Toast; | ||
| 13 | + | ||
| 14 | +import com.gzyouai.fengniao.sdk.framework.PoolExitDialogListener; | ||
| 15 | +import com.gzyouai.fengniao.sdk.framework.PoolExitListener; | ||
| 16 | +import com.gzyouai.fengniao.sdk.framework.PoolExpansionListener; | ||
| 17 | +import com.gzyouai.fengniao.sdk.framework.PoolLoginInfo; | ||
| 18 | +import com.gzyouai.fengniao.sdk.framework.PoolLoginListener; | ||
| 19 | +import com.gzyouai.fengniao.sdk.framework.PoolLogoutListener; | ||
| 20 | +import com.gzyouai.fengniao.sdk.framework.PoolPayInfo; | ||
| 21 | +import com.gzyouai.fengniao.sdk.framework.PoolPayListener; | ||
| 22 | +import com.gzyouai.fengniao.sdk.framework.PoolReport; | ||
| 23 | +import com.gzyouai.fengniao.sdk.framework.PoolRoleInfo; | ||
| 24 | +import com.gzyouai.fengniao.sdk.framework.PoolRoleListener; | ||
| 25 | +import com.gzyouai.fengniao.sdk.framework.PoolSDKCallBackListener; | ||
| 26 | +import com.gzyouai.fengniao.sdk.framework.PoolSDKCode; | ||
| 27 | +import com.gzyouai.fengniao.sdk.framework.PoolSdkHelper; | ||
| 28 | +import com.gzyouai.fengniao.sdk.framework.PoolSdkLog; | ||
| 29 | + | ||
| 30 | +public class AppActivity extends Activity { | ||
| 31 | + | ||
| 32 | + private Button yaLoginBt; | ||
| 33 | + private Button yaEnterGameBt; | ||
| 34 | + private Button yaPayBt; | ||
| 35 | + private Button yaSubmitRoleDataBt; | ||
| 36 | + private Button yaChannelCenter; | ||
| 37 | + private Button yaSwitchAccountBt; | ||
| 38 | + private Button forumBt; | ||
| 39 | + | ||
| 40 | + @Override | ||
| 41 | + protected void onCreate(Bundle savedInstanceState) { | ||
| 42 | + super.onCreate(savedInstanceState); | ||
| 43 | + int layoutId = getResources().getIdentifier( | ||
| 44 | + "public_sdk_self_game_login", "layout", getPackageName()); | ||
| 45 | + setContentView(layoutId); | ||
| 46 | + initLoginView(); | ||
| 47 | + PoolSdkLog.setIsShowLog(true);//显示PoolSDK log | ||
| 48 | + | ||
| 49 | + PoolSdkHelper.init(this, new PoolSDKCallBackListener() { | ||
| 50 | + @Override | ||
| 51 | + public void poolSdkCallBack(int code, String msg) { | ||
| 52 | + // TODO Auto-generated method stub | ||
| 53 | + switch (code) { | ||
| 54 | + case PoolSDKCode.POOLSDK_INIT_SUCCESS://初始化成功 | ||
| 55 | + PoolSdkLog.logInfo("游戏中POOLSDK_INIT_SUCCESS"); | ||
| 56 | + login(); | ||
| 57 | + break; | ||
| 58 | + case PoolSDKCode.POOLSDK_INIT_FAIL: | ||
| 59 | + break; | ||
| 60 | + default: | ||
| 61 | + break; | ||
| 62 | + } | ||
| 63 | + } | ||
| 64 | + }); | ||
| 65 | + | ||
| 66 | + //注销账号监听(在SDK账号注销时回调通知,游戏可在此处理切换账号逻辑) | ||
| 67 | + PoolSdkHelper.setLogoutCallback(new PoolLogoutListener() { | ||
| 68 | + @Override | ||
| 69 | + public void onLogoutSuccess() { | ||
| 70 | + // TODO: 此处处理SDK登出的逻辑 | ||
| 71 | + login(); | ||
| 72 | + PoolSdkLog.logInfo("游戏中logoutSuccess"); | ||
| 73 | + } | ||
| 74 | + }); | ||
| 75 | + | ||
| 76 | + } | ||
| 77 | + | ||
| 78 | + @Override | ||
| 79 | + public void onStart() { | ||
| 80 | + super.onStart(); | ||
| 81 | + PoolSdkHelper.onStart(); | ||
| 82 | + } | ||
| 83 | + @Override | ||
| 84 | + public void onStop() { | ||
| 85 | + super.onStop(); | ||
| 86 | + PoolSdkHelper.onStop(); | ||
| 87 | + } | ||
| 88 | + @Override | ||
| 89 | + public void onResume() { | ||
| 90 | + super.onResume(); | ||
| 91 | + PoolSdkHelper.onResume(); | ||
| 92 | + } | ||
| 93 | + @Override | ||
| 94 | + public void onPause() { | ||
| 95 | + super.onPause(); | ||
| 96 | + PoolSdkHelper.onPause(); | ||
| 97 | + } | ||
| 98 | + @Override | ||
| 99 | + public void onRestart() { | ||
| 100 | + super.onRestart(); | ||
| 101 | + PoolSdkHelper.onRestart(); | ||
| 102 | + } | ||
| 103 | + @Override | ||
| 104 | + public void onDestroy() { | ||
| 105 | + super.onDestroy(); | ||
| 106 | + PoolSdkHelper.onDestroy(); | ||
| 107 | + } | ||
| 108 | + @Override | ||
| 109 | + public void onNewIntent(Intent intent) { | ||
| 110 | + super.onNewIntent(intent); | ||
| 111 | + PoolSdkHelper.onNewIntent(intent); | ||
| 112 | + } | ||
| 113 | + @Override | ||
| 114 | + protected void onActivityResult(int requestCode, int resultCode, Intent data) { | ||
| 115 | + PoolSdkHelper.onActivityResult(requestCode, resultCode, data); | ||
| 116 | + } | ||
| 117 | + @Override | ||
| 118 | + public void onConfigurationChanged(Configuration newConfig) { | ||
| 119 | + // TODO Auto-generated method stub | ||
| 120 | + super.onConfigurationChanged(newConfig); | ||
| 121 | + PoolSdkHelper.onConfigurationChanged(newConfig); | ||
| 122 | + } | ||
| 123 | + | ||
| 124 | + @Override | ||
| 125 | + public boolean dispatchKeyEvent(KeyEvent pKeyEvent) { | ||
| 126 | + if (pKeyEvent.getKeyCode() == KeyEvent.KEYCODE_BACK | ||
| 127 | + && pKeyEvent.getAction() == KeyEvent.ACTION_DOWN) { | ||
| 128 | + if (PoolSdkHelper.hasExitDialog()) {//判断SDK是否含有退出框 | ||
| 129 | + PoolSdkHelper.showExitDialog(new PoolExitDialogListener() { | ||
| 130 | + @Override | ||
| 131 | + public void onDialogResult(int code, String msg) { | ||
| 132 | + // TODO Auto-generated method stub | ||
| 133 | + switch (code) { | ||
| 134 | + case PoolSDKCode.EXIT_SUCCESS:// 退出成功游戏处理自己退出逻辑 | ||
| 135 | + finish(); | ||
| 136 | + break; | ||
| 137 | + case PoolSDKCode.EXIT_CANCEL://取消退出 | ||
| 138 | + break; | ||
| 139 | + default: | ||
| 140 | + break; | ||
| 141 | + } | ||
| 142 | + } | ||
| 143 | + }); | ||
| 144 | + } else { | ||
| 145 | + // TODO: 调用游戏的退出界面 | ||
| 146 | + showGameExitTips(); | ||
| 147 | + } | ||
| 148 | + return false; | ||
| 149 | + } | ||
| 150 | + return super.dispatchKeyEvent(pKeyEvent); | ||
| 151 | + } | ||
| 152 | + | ||
| 153 | + private void showGameExitTips() { | ||
| 154 | + AlertDialog.Builder dialog = new AlertDialog.Builder(this); | ||
| 155 | + int ic_dialog_alert_id = getRedIdByName("ic_dialog_alert", "drawable"); | ||
| 156 | + dialog.setIcon(ic_dialog_alert_id); | ||
| 157 | + dialog.setTitle("提示"); | ||
| 158 | + dialog.setMessage("是否退出游戏?"); | ||
| 159 | + dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() { | ||
| 160 | + @Override | ||
| 161 | + public void onClick(DialogInterface dialog, int which) { | ||
| 162 | + PoolSdkHelper.exitGame(new PoolExitListener() { | ||
| 163 | + @Override | ||
| 164 | + public void onExitGame() { | ||
| 165 | + finish(); | ||
| 166 | + } | ||
| 167 | + }); | ||
| 168 | + } | ||
| 169 | + }); | ||
| 170 | + dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() { | ||
| 171 | + @Override | ||
| 172 | + public void onClick(DialogInterface dialog, int which) { | ||
| 173 | + dialog.dismiss(); | ||
| 174 | + } | ||
| 175 | + }); | ||
| 176 | + dialog.show(); | ||
| 177 | + } | ||
| 178 | + | ||
| 179 | + private int getRedIdByName(String resName, String resType) { | ||
| 180 | + return getResources().getIdentifier(resName, resType, getPackageName()); | ||
| 181 | + } | ||
| 182 | + | ||
| 183 | + private void initLoginView() { | ||
| 184 | + int ya_login_bt = getRedIdByName("ya_login_bt", "id");// getResources().getIdentifier("ya_login_bt", | ||
| 185 | + // "id", | ||
| 186 | + // getPackageName()); | ||
| 187 | + yaLoginBt = (Button) findViewById(ya_login_bt); | ||
| 188 | + yaLoginBt.setText("登录"); | ||
| 189 | + yaEnterGameBt = (Button) findViewById(getRedIdByName( | ||
| 190 | + "ya_enter_game_bt", "id")); | ||
| 191 | + yaEnterGameBt.setText("进入游戏"); | ||
| 192 | + } | ||
| 193 | + | ||
| 194 | + private void initGameView() { | ||
| 195 | + yaPayBt = (Button) findViewById(getRedIdByName("ya_pay_bt", "id")); | ||
| 196 | + yaPayBt.setText("支付"); | ||
| 197 | + yaSubmitRoleDataBt = (Button) findViewById(getRedIdByName( | ||
| 198 | + "ya_submit_role_data_bt", "id")); | ||
| 199 | + yaSubmitRoleDataBt.setText("提交角色数据"); | ||
| 200 | + yaChannelCenter = (Button) findViewById(getRedIdByName( | ||
| 201 | + "ya_channel_center", "id")); | ||
| 202 | + yaChannelCenter.setText("渠道中心"); | ||
| 203 | + yaSwitchAccountBt = (Button) findViewById(getRedIdByName( | ||
| 204 | + "ya_switch_account_bt", "id")); | ||
| 205 | + yaSwitchAccountBt.setText("切换账号"); | ||
| 206 | + | ||
| 207 | + forumBt = (Button)findViewById(getRedIdByName("forum_bt", "id")); | ||
| 208 | + forumBt.setText("打开论坛"); | ||
| 209 | + PoolSdkLog.logError("" + yaPayBt + "yachannel:" + yaChannelCenter); | ||
| 210 | + } | ||
| 211 | + | ||
| 212 | + public void yaOnClick(View view) { | ||
| 213 | + if (view == yaLoginBt) { | ||
| 214 | + login(); | ||
| 215 | + } else if (view == yaEnterGameBt) { | ||
| 216 | + setContentView(getRedIdByName("public_sdk_self_game", "layout"));// (R.layout.game); | ||
| 217 | + initGameView(); | ||
| 218 | + PoolReport.reportEnterGame("chufan", 11, "201"); | ||
| 219 | + } else if (view == yaPayBt) { | ||
| 220 | + pay(); | ||
| 221 | + } else if (view == yaSubmitRoleDataBt) { | ||
| 222 | + submitRoleData(); | ||
| 223 | + } else if (view == yaChannelCenter) { | ||
| 224 | + channelCenter(); | ||
| 225 | + } else if (view == yaSwitchAccountBt) { | ||
| 226 | + switchAccount(); | ||
| 227 | + }else if(view == forumBt){ | ||
| 228 | + openForum(); | ||
| 229 | + } | ||
| 230 | + } | ||
| 231 | + | ||
| 232 | + private void openForum(){ | ||
| 233 | + Toast.makeText(this, "打开论坛", Toast.LENGTH_SHORT).show(); | ||
| 234 | + PoolSdkHelper.openForum(); | ||
| 235 | + } | ||
| 236 | + | ||
| 237 | + private void login() { | ||
| 238 | + | ||
| 239 | + PoolSdkHelper.login("登录自定义字段", new PoolLoginListener() { | ||
| 240 | + @Override | ||
| 241 | + public void onLoginSuccess(PoolLoginInfo poolLoginInfo) { | ||
| 242 | + String userType = poolLoginInfo.getUserType(); | ||
| 243 | + String timestamp = poolLoginInfo.getTimestamp(); | ||
| 244 | + String serverSign = poolLoginInfo.getServerSign(); | ||
| 245 | + String openId = poolLoginInfo.getOpenID(); | ||
| 246 | + // TODO: 把以上信息发送给游戏服务端做登录校验,需要其他信息请从poolLoginInfo对象中获取 | ||
| 247 | + System.out.println("登录成功 userType = " + userType | ||
| 248 | + + "; timestamp = " + timestamp + "; serverSign = " | ||
| 249 | + + serverSign + "; openId = " + openId); | ||
| 250 | + } | ||
| 251 | + | ||
| 252 | + @Override | ||
| 253 | + public void onLoginFailed(String errorMsg) { | ||
| 254 | + System.out.println("登录失败 = " + errorMsg); | ||
| 255 | + } | ||
| 256 | + }); | ||
| 257 | + } | ||
| 258 | + /** | ||
| 259 | + * 充值接口 | ||
| 260 | + */ | ||
| 261 | + private void pay() { | ||
| 262 | + PoolPayInfo poolPayInfo = new PoolPayInfo(); | ||
| 263 | + | ||
| 264 | + /******************************************** | ||
| 265 | + * 以下所有字段都是必填项 | ||
| 266 | + */ | ||
| 267 | + // 设置充值金额,单位“元” | ||
| 268 | + poolPayInfo.setAmount("1"); | ||
| 269 | + // 服务器id | ||
| 270 | + poolPayInfo.setServerID("8"); | ||
| 271 | + // 服务器名 | ||
| 272 | + poolPayInfo.setServerName("我是服务器名"); | ||
| 273 | + // 角色id | ||
| 274 | + poolPayInfo.setRoleID("123456"); | ||
| 275 | + // 角色名 | ||
| 276 | + poolPayInfo.setRoleName("我是角色名"); | ||
| 277 | + // 角色等级 | ||
| 278 | + poolPayInfo.setRoleLevel("10"); | ||
| 279 | + // 商品ID | ||
| 280 | + poolPayInfo.setProductID("1"); | ||
| 281 | + // 商品名称 | ||
| 282 | + poolPayInfo.setProductName("金币"); | ||
| 283 | + // 商品描述 | ||
| 284 | + poolPayInfo.setProductDesc("购买金币"); | ||
| 285 | + // 兑换比例 | ||
| 286 | + poolPayInfo.setExchange("10"); | ||
| 287 | + // 自定义参数 | ||
| 288 | + poolPayInfo.setCustom("我是自定义参数"); | ||
| 289 | + | ||
| 290 | + PoolSdkHelper.pay(poolPayInfo, new PoolPayListener() { | ||
| 291 | + | ||
| 292 | + @Override | ||
| 293 | + public void onPaySuccess(String paramCustom) { | ||
| 294 | + System.out.println("支付成功 = " + paramCustom); | ||
| 295 | + } | ||
| 296 | + | ||
| 297 | + @Override | ||
| 298 | + public void onPayFailed(String paramCustom, String errorMsg) { | ||
| 299 | + System.out.println("支付失败 = " + paramCustom + "; errorMsg = " | ||
| 300 | + + errorMsg); | ||
| 301 | + } | ||
| 302 | + }); | ||
| 303 | + } | ||
| 304 | + | ||
| 305 | + /** | ||
| 306 | + * 提交角色数据 该接口需要在3个地方调用 | ||
| 307 | + * | ||
| 308 | + * 1、登录游戏主场景 2、创建角色 3、角色升级 | ||
| 309 | + */ | ||
| 310 | + private void submitRoleData() { | ||
| 311 | + /******************************************** | ||
| 312 | + * 以下所有字段都是必填项 | ||
| 313 | + */ | ||
| 314 | + PoolRoleInfo poolRoleInfo = new PoolRoleInfo(); | ||
| 315 | + poolRoleInfo.setRoleID("123456"); | ||
| 316 | + poolRoleInfo.setRoleLevel("10"); | ||
| 317 | + poolRoleInfo.setRoleSex("0"); | ||
| 318 | + poolRoleInfo.setRoleName("我是角色名"); | ||
| 319 | + poolRoleInfo.setServerID("1"); | ||
| 320 | + poolRoleInfo.setServerName("我是服务器名"); | ||
| 321 | + poolRoleInfo.setCustom(System.currentTimeMillis()/1000+"");//游戏创建角色时间 以秒为单位 | ||
| 322 | + poolRoleInfo.setCallType(PoolRoleInfo.Type_EnterGame);//1、登录游戏主场景 2、创建角色 3、角色升级 | ||
| 323 | + // poolRoleInfo.setCallType(PoolRoleInfo.Type_CreateRole); | ||
| 324 | + // poolRoleInfo.setCallType(PoolRoleInfo.Type_RoleUpgrade); | ||
| 325 | + | ||
| 326 | + PoolSdkHelper.submitRoleData(poolRoleInfo, new PoolRoleListener() { | ||
| 327 | + @Override | ||
| 328 | + public void onRoleDataSuccess(String paramCustom) { | ||
| 329 | + System.out.println("提交角色数据成功 = " + paramCustom); | ||
| 330 | + } | ||
| 331 | + }); | ||
| 332 | + } | ||
| 333 | + | ||
| 334 | + /** | ||
| 335 | + * 用户中心 | ||
| 336 | + * | ||
| 337 | + * 游戏方先调用PoolSDKHelper.hasChannelCenter()获取是否有用户中心, | ||
| 338 | + * 如果有的话,游戏中需要添加按钮,点击按钮调用PoolSDKHelper.openChannelCenter(); | ||
| 339 | + * 如果没有,则不需要显示按钮,也不用调用下面的接口 | ||
| 340 | + */ | ||
| 341 | + private void channelCenter() { | ||
| 342 | + PoolSdkHelper.openChannelCenter(); | ||
| 343 | + } | ||
| 344 | + | ||
| 345 | + /** | ||
| 346 | + * 切换帐号(使用用户中心中的切换账号) | ||
| 347 | + */ | ||
| 348 | + private void switchAccount() { | ||
| 349 | + boolean hasChannelCenter = PoolSdkHelper.hasChannelCenter(); | ||
| 350 | + if(hasChannelCenter){ | ||
| 351 | + PoolSdkHelper.openChannelCenter();//打开用户中心 | ||
| 352 | + }else{//如果没有用户中心 游戏自己处理切换账号逻辑 | ||
| 353 | + setContentView(getRedIdByName("public_sdk_self_game_login", | ||
| 354 | + "layout"));// (R.layout.game_login); | ||
| 355 | + initLoginView(); | ||
| 356 | + } | ||
| 357 | + } | ||
| 358 | + | ||
| 359 | + /** | ||
| 360 | + * 扩展接口 | ||
| 361 | + */ | ||
| 362 | + private void expansionInterface() { | ||
| 363 | + PoolSdkHelper.expansionInterface("自定义参数", new PoolExpansionListener() { | ||
| 364 | + @Override | ||
| 365 | + public void onSuccess(String paramCustom) { | ||
| 366 | + | ||
| 367 | + } | ||
| 368 | + }); | ||
| 369 | + } | ||
| 370 | +} |
publicAndroidSDK/doc/公共SDK客户端接入文档.pdf
0 → 100644
No preview for this file type
publicAndroidSDK/doc/公共SDK服务端接入文档.pdf
0 → 100644
No preview for this file type
publicAndroidSDK/jar/PoolOkhttp.jar
0 → 100644
No preview for this file type
publicAndroidSDK/jar/YouaiSdk.jar
0 → 100644
No preview for this file type
publicAndroidSDK/jar/okio-1.6.0.jar
0 → 100644
No preview for this file type
publicAndroidSDK/jar/poolsdkV2.jar
0 → 100644
No preview for this file type
-
Please register or login to post a comment