机智云SDK导入学习笔记

机智云SDK导入学习笔记

第一部分:下载SDK,并完成初始化

  1. 下载机智云集成SDK
  2. 导入jar包。添加Library
  3. 在main文件夹下添加jniLibs文件夹,将armeabi文件夹放入,并在build.gradle 添加相应依赖
    4.添加闪屏页,添加一个activity,并添加布局文件,在
    AndroidManifes.xml下,将
		<intent-filter> <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

添加到你注册的activity下,完成入口切换
5.初始化SDK:

//写一个方法初始化SDK
 private void initSdk() {
    
    
        GizWifiSDK.sharedInstance().setListener(mListener);
        ConcurrentHashMap<String,String> appInfo = new ConcurrentHashMap<>();appInfo.put("appId", "your_app_id");
        appInfo.put("appSecret", "your_app_secret");// 设置要过滤的设备 productKey 列表。不过滤则直接传 null
        List<ConcurrentHashMap<String, String>>  productInfo=new ArrayList<>();
         ConcurrentHashMap<String, String> product = new ConcurrentHashMap<>();
         product.put("productKey", "your_product_secret");
         product.put("productSecret", "your_product_secret");
            productInfo.add(product);// 指定要切换的域名信息。使用机智云生产环境则传 null
        GizWifiSDK.sharedInstance().startWithAppInfo(this, appInfo,productInfo, null, false);
    };
    //设置监听,测试是否成功初始化
    private GizWifiSDKListener mListener = new GizWifiSDKListener(){
    
    
        @Override
        public void didNotifyEvent(GizEventType eventType, Object eventSource, GizWifiErrorCode eventID, String eventMessage) {
    
    
            super.didNotifyEvent(eventType, eventSource, eventID, eventMessage);
            Log.e("=w",eventType.toString());
            //如果初始化成功,就匿名登录
            if(eventType==GizEventType.GizEventSDK){
    
    
                GizWifiSDK.sharedInstance().userLoginAnonymous();
        }

第二部分 动态获取权限

  1. 请将下面权限配置代码复制到 AndroidManifest.xml 文件中:

    android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"
    /> <uses-permission
    android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission
    android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission
    android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission
    android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"
    /> <uses-permission
    android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> ```
    

2.动态获取权限:

//检查权限情况
 private void CheckAndroidPermission() {
    
    
        if(Build.VERSION.SDK_INT>=23)
        {
    
    
            requestRunPerMison(new String[]{
    
    Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.CAMERA,       Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.ACCESS_WIFI_STATE
        });
        }
    }
    private void requestRunPerMison(String[] strings) {
    
    
        int states =0;
        for (String permison:strings) {
    
    
          if(ContextCompat.checkSelfPermission(this,permison)!= PackageManager.PERMISSION_GRANTED)
          ActivityCompat.requestPermissions(this,strings,108);
          else{
    
    
              states++;//如果有权限,就加一
          }
        }//窗口弹窗授权权限方法
if(states==5)
{
    
    
    mhandler.sendEmptyMessageDelayed(107,2500);//都已经获取成功,跳转页面
}
    }
    //获取状态回调函数
OnRequestPermissionsResultCallback a =new OnRequestPermissionsResultCallback() {
    
    
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    
    
         switch (requestCode){
    
    
             case 108:if(grantResults.length>0)
             {
    
    
                 List<String> denioedPermison = new ArrayList<>();
                 for(int i=0;i<grantResults.length;i++) {
    
    
                     int grantPermison = grantResults[i];
                     String Permison =permissions[i];
                     if(grantPermison!=PackageManager.PERMISSION_GRANTED)
                         denioedPermison.add(Permison);
                 }//循环查询,如果有拒绝的,就添加到LIST列表
                 if(denioedPermison.isEmpty()){
    
    
                     mhandler.sendEmptyMessage(107);
                 }else {
    
    
                     Toast.makeText(SplashActivity.this,"你拒绝了部分权限,请手动打开",Toast.LENGTH_SHORT).show();
                     mhandler.sendEmptyMessageDelayed(107,2500);//发送消息
                 }

             }
         }
3.导入第三方UI库,快捷开发

QMUI 第三方UI库

https://github.com/Tencent/QMUI_Android/

添加无导航栏,主题style中设置

<item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>//设置全屏显示

将第三方库中的需要的color 和style 尽量copy进自己的项目,否则报错。

    QMUITopBar topBar=findViewById(R.id.topbar);//定义控件
        topBar.setTitle("科派科技");//设置标题
/*此处设置右边的图片按钮,跳转至配网界面*/
      topBar.addRightImageButton(R.mipmap.ico_add,R.id.addic).setOnClickListener(new View.OnClickListener() {
    
    
            @Override
            public void onClick(View v) {
    
    

            }
        });

将设备回调的token保存到本地

SharedPreferences
封装一个SharePreference 方法

    private static final String SP_NAME="config";//定义一个静态常量。
    //key是键值  value 存储字符
    //储存数据
    private void putString(Context mcontext,String key,String value){
    
    
     //打开一个SharedPreferences
        SharedPreferences sp=mcontext.getSharedPreferences(SP_NAME,Context.MODE_PRIVATE);
        SharedPreferences.Editor editor=sp.edit();
        editor.putString(key,value);
        editor.apply();//要应用下才能保存
    }
    //获取数据
    private static String getString(Context mcontext,String key,String defvalue){
    
    
        SharedPreferences sp=mcontext.getSharedPreferences(SP_NAME,Context.MODE_PRIVATE);
         return   sp.getString(key,defvalue);
    }

猜你喜欢

转载自blog.csdn.net/u014627911/article/details/103201277