文章主要讲解安卓接入机智云平台的方法,点击一个按钮实现数据的发送,点击另一个按钮实现数据的接收

我使用的方法是:使用一个机智云的开源框架,(相当于是一个协议栈),对源码进行修改然后,和配置,在添加上自己的代码就可以实现简单的功能了。

当然做安卓的开发还是需要有一定的安卓基础的,不过如果你实在不会安卓,仅仅是会硬件也没有关系,下面会有一些别的博主的视频,以及你可以自己在机智云上面建立一个虚拟的安卓app,然后机智云平台会自己吧你建立的安卓程序打包,然后你就可以在你的手机上面使用你建立的app了

不喜欢看文字的朋友大家可以直接去看这个博主的视频,里面讲解特别详细,(感谢这个博主),下面是链接,爱奇艺的视频

相关的视频
http://www.iqiyi.com/paopao/u/2343470149/video/
博主:andorid攻城狮小徐

在视频里面需要你下载一个安卓studio的开源项目,基于开源项目来开发程序
https://github.com/gizwits/GOpenSource_AppKit_Android_AS

androidStudio开发品台的机智云开发开源框架:只要在安卓studio里面导入这个开源框架,里面就已经集成好了机智云的一些功能,就相当于是一个协议栈,我们只需要根据自己的需要
进行修改就可以了

还有与之相关的博客
https://blog.csdn.net/xh870189248/article/details/75529253

下面我们就开始讲解具体的开发步骤

1.首先你需要在机智云平台上创建一个项目,然后再创建一个产品,获得到产品的一些信息,后面开发App的时候要用。

2.下载开源的项目,并且吧开源的项目添加到android studio里面。(至于怎么下载安卓studio大家自己百度吧,这个软件可是不好下载的。)

开源项目下载地址

https://github.com/gizwits/GOpenSource_AppKit_Android_AS

3.吧项目导入android studio 里面,并且进行相关的配置,如果你只是想实现简单的收发数据,那么主要用到的文件只有三个

我们在分别介绍一下这三个文件

(1)当你在android studio 里面导入开源的项目以后,首先就要进入配置文件里面进行配置,这时候需要下载一些第三的包,所以你要保证你的电脑联网!!!!,配置以后我们才可以运行起来文件,否则就换闪退

(2)界面的代码(前端),我就只是写了两个按钮和一个文本框

(3) 后端的程序编写,我就直接上代码了

package com.gizwits.opensource.appkit.ControlModule;
import com.gizwits.gizwifisdk.api.GizWifiDevice;
import com.gizwits.gizwifisdk.enumration.GizWifiErrorCode;
import com.gizwits.gizwifisdk.listener.GizWifiDeviceListener
import com.gizwits.opensource.appkit.R;
import com.gizwits.opensource.appkit.CommonModule.GosBaseActivity;

import android.app.ActionBar;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;import java.util.concurrent.ConcurrentHashMap;public class GosDeviceControlActivity extends GosBaseActivity {//这里就是我机智云李阿敏那个设备的控制页面/** The tv MAC */
private TextView tvMAC;/** The GizWifiDevice device */
private GizWifiDevice device;   //这个就是你云端对应的那个设备/** The ActionBar actionBar */
ActionBar actionBar;//*******************************  定义一下我自己的控件
private Button  bt_send,bt_rece;//*******************************  定义一下我自己设备在云端的数据流
private String light = "LightOn";
private String temp = "temp";//找到发送消息的缓冲区,就是一个哈希表
//用于发送数据,只要把数据放到这里面数据就会被发送到云端
private ConcurrentHashMap<String , Object> map;@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_gos_device_control);initDevice();setActionBar(true, true, device.getProductName());initView();}private void initView() {tvMAC = (TextView) findViewById(R.id.tvMAC);if (null != device) {tvMAC.setText(device.getProductName());}//这个是初始化函数,因为oncreat方法里面引入了这个函数,所以吧点击事件写在这里面也是可以的bt_send = (Button) findViewById(R.id.MyButton_send);bt_rece = (Button) findViewById(R.id.MyButton_rece);bt_send.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//首先要先对map进行初始化map = new ConcurrentHashMap<>();map.put(light , true) ;  //put 方法里面采用键值对的形式,前面是云端定义的数据点,后面是数据点的值device.write(map , 0);}});bt_rece.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//首先要对map进行初始化map = new ConcurrentHashMap<>();// Toast.makeText(this ,"")//    map.put(temp , 111) ;  //put 方法里面采用键值对的形式,前面是云端定义的数据点,后面是数据点的值//  device.write(map , 0);}});}private void initDevice() {Intent intent = getIntent();device = (GizWifiDevice) intent.getParcelableExtra("GizWifiDevice");device.setListener(listener);
//  Log.i("Apptest", device.getDid());
}@Override
public boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case android.R.id.home:this.finish();break;}return super.onOptionsItemSelected(item);
}private GizWifiDeviceListener listener = new GizWifiDeviceListener() {@Overridepublic void didReceiveData(GizWifiErrorCode result, GizWifiDevice device, ConcurrentHashMap<String, Object> dataMap, int sn) {super.didReceiveData(result, device, dataMap, sn);//先判断是否为正确回调//if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {//} ////*********************************  这样处理和显示数是非常不合理的,因为不能在主线程里面//进行UI操作,可能会造成线程阻塞从而闪退 , 要使用hanlder机制,进行处理Log.i("rec", "receive from deceive "+dataMap.toString());Toast.makeText(GosDeviceControlActivity.this ,dataMap.toString()  ,Toast.LENGTH_SHORT).show();}
};@Override
protected void onDestroy() {//界面退出去以后关闭回调函数device.setListener(null);super.onDestroy();
}
}

如果要想使用上面的方法实现安卓对机智云的开发需要一定的安卓功底,当然如果你仅仅是学习硬件的,那么你越也可以直接采用下面的方法进行你自己的APP开发

首先呢,你需要在机智云平台上面创建一个你自己的项目,再创建一个产品,然后再创建一个虚拟设备,选择机智云会帮助你创建一个android studio 的项目包,导入安卓studio运行到你的手机上就可以使用了

小白上路,如有不妥,望请见谅。

基于android Studio的安卓软件接入机智云相关推荐

  1. 基于Android Studio的安卓课程设计(Keep运动软件)

    一.开发环境 1.系统环境:Windows.Mac等 2.集成开发环境:Android Studio.虚拟机版本为Android 7.0(Nexus 5 API 24型号) 数据库系统:Android ...

  2. Android Studio 开发安卓软件时下载的工程项目 Sync with gradle 失败

    Sync with gradle 失败的原因有很多,其中很多时候会遇到下载下来的工程同步失败,目前的经验来看下载的工程同步失败均是由于下图中的两个配置其中某个缺少了 google() 或者 jcent ...

  3. Android开发介绍(基于Android Studio软件)

    Android开发介绍(基于Android Studio软件) 关于Android开发,笔者走过一些弯路,因此今天总计了有关Android开发的一些内容和心得,希望对大家有所帮助.首先来一张安卓开发者 ...

  4. 基于Android平台的记事本软件(Android Studio项目+报告+app文件)

    移动应用开发技术 期末考核报告 题   目:        基于Android平台的记事本软件             学生姓名     学生学号                           ...

  5. (超多图)基于Android studio开发的一个简单入门小应用(超级详细!!)(建议收藏)

    基于Android studio开发的一个简单入门小应用 一.前言 二.前期准备 三.开发一个小应用 五.运行应用 一.前言 在暑假期间,我学习JAVA基础,为了能早日实现自己用代码写出一个app的& ...

  6. android studio绘制统计图,基于Android Studio的饼图账单的设计与开发_毕业论文.doc

    基于Android Studio的饼图账单的设计与开发_毕业论文 Anhui Vocactional & Technical College of Industry & Trade 毕 ...

  7. 基于Android Studio经典蓝牙APP---继上一次的完善版

    基于Android Studio经典蓝牙APP-继上一次的完善版 考虑到好友网友们反馈的问题总结了以下几点: 1.工程下载爆红:版本问题-gradle:4.1.1. 2.无接收数据功能,怎么实现:这里 ...

  8. 《ArcGIS Runtime SDK for Android开发笔记》——(6)、基于Android Studio的ArcGIS Android工程结构解析...

    1.前言 Android Studio 是第一个Google官方的 Android 开发环境.其他工具,例如 Eclipse,在 Android Studio 发布之前已经有了大规模的使用.为了帮助开 ...

  9. 基于Android Studio搭建hello world工程

    基于Android Studio搭建hello world工程 版本:ANDROID STUDIO V0.4.6 This download includes: ·        Android St ...

最新文章

  1. python2x NameError: name ‘abc‘ is not defined
  2. NGINX(一)内存结构
  3. 第二章:方法区和运行时常量池溢出
  4. linux手动同步文件命令,Linux文件同步命令rsync详解
  5. 面试官: Flink双流JOIN了解吗? 简单说说其实现原理
  6. mybatis是否接受运算符参数化
  7. (32)Verilog HDL按位运算
  8. DSB2017第一名代码尝试运行(记录自用)(一)
  9. PAT 1087 有多少不同的值(20 分)- 乙级
  10. 【Hoxton.SR1版本】Spring Cloud OpenFeign远程服务调用
  11. 【正版软件】Virtual Display Manager 虚拟显示器布局配置管理软件
  12. Go编译原理系列1(编译原理概览)
  13. 计算机视觉硕士课程南京大学,南京大学计算机系研究生课程文库
  14. Android Studio开发环境的搭建与hello world项目的构建
  15. android 吉他模拟器,真实吉他模拟器
  16. 新手入门指南 | 教你如何写研报?
  17. HTB分层令牌桶排队规则分析
  18. 实现微信扫描小程序码携带参数和路径跳转页面
  19. Spatial-Spectral Transformer for Hyperspectral Image Classification_外文翻译
  20. 旅行也能玩儿转区块链?看星牛APP的!

热门文章

  1. 将一台及多台服务器操作日志发送至中央日志服务器
  2. 日记侠:关于朋友圈文案策划,你如何理解?
  3. Php 小视频存储,微信里的小视频怎样保存和下载
  4. 很多的身不由己,很多的美好时光
  5. 微信小程序学习笔记( 小程序框架 )
  6. SaaS生态下一站,华为云将怎么做?
  7. pytorch实现BN、LN、GN
  8. 超级狗SuperDog SDK开发套件SuperDog-R-2.5.1.107241安装使用教程
  9. android小程序--猜猜红桃A在哪儿
  10. word中从网页中复制的文字阴影如何去除?