# Weshare WiFi SDK 集成说明文档 2.3.2(标准版) [English](README.md) ## 一、Android Studio WiFiSDK 快速集成 (必须) ``` compile 'com.yiba.sdk:weshareWiFiSDk:2.3.2' ``` **注意事项** - 如果您的项目中的so只需要支持某个cpu平台,请在build.gradle文件中 剔除其他的so,我们aar包中包含了所有的cpu编译平台 - 例如我的APP项目只用到了armeabi-v7a/libgif.so,那么你需要在你的项目 配置如下规则: ```java android { //剔除aar包多余的依赖 packagingOptions { exclude 'lib/armeabi/*' exclude 'lib/arm64-v8a/*' exclude 'lib/x86/*' exclude 'lib/x86_64/*' exclude 'lib/mips/*' exclude 'lib/mips64/*' } } ``` - 如果你的是其他的平台,请参照上面做相应的剔除 ## 二、添加引用 (必须) ``` compile 'com.android.support:recyclerview-v7:25.0.0' compile 'com.android.support:support-v4:25.0.0' ``` ## 三、设置 Token (必须) ``` yourAppToken ``` **注意事项:** - yourAppToken 表示你的 App WiFi SDK 需要添加的 Token . - 在官网 (http://www.pegasus-mobile.com/) 申请 Token . ## 四、权限添加 (必须) 如果你的 app 的 targetSdkVersion 大于或者等于 23 , 你需要添加定位定位权限 ``` ``` 如果你的 app 的 targetSdkVersion 小于 23 ,你不需要添加任何权限。 ## 五、WiFiSDK 初始化 (必须) 将以下代码复制到项目 Application 类 onCreate()中,SDK会为自动完成初始化。 ``` WiFiSDKManager.init( this ); ``` ## 六、启动 WIFI 界面 (必须) ``` Intent intent = new Intent( MainActivity.this , WiFiActivity.class) ; startActivity( intent ); ``` ## 七、自定义通知 (可选) ``` package com.yiba.wifi.receiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import com.yiba.wifi.sdk.lib.manager.WiFiSDKManager; /** * Created by ${zhaoyanjun} on 2017/6/1. */ public class NotificationReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction() ; if ( action.equals(WiFiSDKManager.YIBA_NOTIFICATION_ACTION)) { if (intent.hasExtra(WiFiSDKManager.YIBA_NOTIFICATION_JSON_DATA)) { String json = intent.getStringExtra(WiFiSDKManager.YIBA_NOTIFICATION_JSON_DATA); /** * json 数据格式: {"type":0,"count":7} * * json 数据字段说明: * type 代表WiFi 类型( 0:Shared WiFi 、1:Open WiFi ) * count : 代表对应 WiFi 的个数 * */ } } } } ``` NotificationReceiver 需要在 AndroidManifest.xml 文件中注册 ``` ``` ## 八、自定义UI (可选) ### 8.1、自定义 WiFi 列表页面返回箭头的点击事件。 ![image](http://oquxsbjw1.bkt.clouddn.com/WiFi%20SDK%201.png) 默认情况下,点击返回的按钮,会执行 finish() 方法,销毁掉 WiFi 列表 Activity 。如果开发者想要获取返回按钮的点击事件,需要用自己定义的 Activity 继承 WiFiActivity 并且重写 WiFiActivity 的 initBackLayout() 方法。示例如下: - WiFiSDKActivity 类 ``` package com.yiba.wifi; import android.view.View; import android.widget.ImageView; import android.widget.Toast; import com.yiba.wifi.ui.WiFiActivity; /** * Created by ${zhaoyanjun} on 2017/6/1. */ public class WiFiSDKActivity extends WiFiActivity { /** * 重写 initBackLayout() 方法 */ @Override public void initBackLayout() { ImageView yiba_back_image = (ImageView) findViewById(R.id.yiba_back_image); yiba_back_image.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(WiFiSDKActivity.this, "back image is click", Toast.LENGTH_SHORT).show(); } }); } } ``` **注意事项** - 8.1.1、重写的 initBackLayout() 方法不能带有 `super.initBackLayout();` - 8.1.2、WiFiSDKActivity 需要在 AndroidManifest.xml 文件中注册 ``` ``` - 8.1.3、打开 WiFi 列表界面 ``` Intent intent = new Intent( MainActivity.this , WiFiSDKActivity.class) ; startActivity( intent ); ``` ### 8.2、 自定义 WiFi 页面 Tab 字体颜色 默认情况下,WiFi 页面 Tab 选中的颜色是白色 `( #ffffff )` , 未选中的颜色是灰色 `( #dddddd) ` , 效果如图所示。 ![](http://oquxsbjw1.bkt.clouddn.com/yiba_tab_color.png) ``` #ffffff #dddddd ``` 如果开发者需要自定义 Tab 字体颜色,你可以在 colors.xml 文件中重写这两个颜色值。 ### 8.3、自定义 WiFi 列表页面背景色 默认情况下,WiFi 检测页 和 WiFi 列表页的背景色是一个渐变色。样式如下图所示: ![image](http://oquxsbjw1.bkt.clouddn.com/yiba_wifi_bg_old_600.jpg) 如果开发者改变主题色,比如改成 浅绿色 - 在 colors.xml 定义渐变色的 开始颜色、结束颜色 ``` #5ba938 #58c129 ``` - 在 drawable 目录下新建 yiba_bg_color.xml 文件 ``` ``` 效果如下: ![](http://oquxsbjw1.bkt.clouddn.com/yiba_wifi_bg_new_600.jpg) ### 8.4、自定义 WiFi 检测结果页 UI 样式 默认的检测结果页的样式如图所示: ![](http://oquxsbjw1.bkt.clouddn.com/yiba_wifi_jianche_old.jpg) 如果开发者要自定义检测结果页的样式,比如改成 **浅绿色** - 在 colors.xml 定义颜色值 ``` #58c129 ``` - 在 WiFi 列表页面启动前调用 ``` WiFiSDKManager.s_bgColor = getResources().getColor( R.color.yiba_ui_bg_color ) ; ``` 修改后效果如果所示: ![](http://oquxsbjw1.bkt.clouddn.com/yiba_wifi_jianche_new.jpg) ## 九、混淆说明 (必须) ``` -keep class com.yiba.**{*;} -keep class www.yiba.com.**{*;} ```