CN101969455A - 一种基于智能手机的小麦生产风险信息采集系统和方法 - Google Patents
一种基于智能手机的小麦生产风险信息采集系统和方法 Download PDFInfo
- Publication number
- CN101969455A CN101969455A CN2010102791292A CN201010279129A CN101969455A CN 101969455 A CN101969455 A CN 101969455A CN 2010102791292 A CN2010102791292 A CN 2010102791292A CN 201010279129 A CN201010279129 A CN 201010279129A CN 101969455 A CN101969455 A CN 101969455A
- Authority
- CN
- China
- Prior art keywords
- information
- information acquisition
- module
- uploading
- production risk
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于智能手机的小麦生产风险信息采集系统,包括客户端和服务器端,所述客户端采用智能手机,在所述客户端设置灾害信息采集模块、农田信息采集模块和一般信息采集模块,所述各个信息采集模块均与信息上传模块连接,通过所述信息上传模块将采集到的信息上传到所述服务器端,所述各个信息采集模块同时均与本地存储模块连接,所述本地存储模块用于将各个信息采集模块采集到的信息存储在本地,所述本地存储模块还与所述信息上传模块连接,用于通过所述信息上传模块将存储在本地的信息上传到所述服务器端;还公开了一种基于智能手机的小麦生产风险信息采集方法。
Description
技术领域
本发明涉及农业信息技术领域,尤其涉及一种基于智能手机的小麦生产风险信息采集系统和方法。
背景技术
随着第三代移动通讯(3G)技术的迅猛发展,基于智能化移动终端的应用和服务获得了很大的发展空间,正在成为移动应用的研究热点之一。3G技术为移动终端用户带来了更快的数据传输速率和更好的网络体验,也为电信网络与计算机网络的融合提供了支持。同时,以智能手机为代表的移动终端也不再仅仅是通讯网络的终端,除支持3G以外,还集成了语音、摄像、WIFI、BLUETOOTH、GPS、键盘等多种设备,有的甚至还内置了温度、光感、重力等多种传感器。因此,智能手机正在向集通话、多媒体、上网、邮件等多功能于一体的掌上电脑方向发展,成为了典型的互联网终端。在这一背景下,针对3G网络和移动终端的特点,面向具体行业需求,提出特定的行业移动应用解决方案具有重要的现实意义。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种基于智能手机的小麦生产风险信息采集系统和方法:
本发明采用以下技术方案:
一种基于智能手机的小麦生产风险信息采集系统,包括客户端和服务器端,所述客户端采用智能手机,在所述客户端设置灾害信息采集模块、农田信息采集模块和一般信息采集模块,所述各个信息采集模块均与信息上传模块连接,通过所述信息上传模块将 采集到的信息上传到所述服务器端,所述各个信息采集模块同时均与本地存储模块连接,所述本地存储模块用于将各个信息采集模块采集到的信息存储在本地,所述本地存储模块还与所述信息上传模块连接,用于通过所述信息上传模块将存储在本地的信息上传到所述服务器端。
所述的小麦生产风险信息采集系统,所述灾害信息采集模块包括文字信息采集模块和灾害视频信息采集模块。
所述的小麦生产风险信息采集系统,所述农田信息采集模块包括农田文字信息采集模块和图像数据采集模块。
所述的小麦生产风险信息采集系统,还包括系统设置模块,用于设置信息采集人员信息和信息存储模式。
一种基于智能手机的小麦生产风险信息采集方法,包括信息采集和信息上传步骤:
所述信息采集步骤包括:A1:启动系统;A2:选择信息采集种类,若选择采集灾害信息则进行步骤A3;若选择进行农田信息采集,则进行步骤A4;若选择进行一般信息采集,则进行步骤A5;A3:灾害信息采集步骤;A4:农田信息采集步骤;A5:一般信息采集步骤;所述步骤A3、A4、A5不区分先后顺序;
所述信息上传步骤包括:检测判断系统设置的存储模式,若为本地存储,则将采集到的信息存储在本地客户端;若为在线存储模式,则将采集到的信息上传到所述服务器端。
所述的小麦生产风险信息采集方法,还包括系统设置步骤,用于设置信息采集人员信息和信息存储模式。
所述的小麦生产风险信息采集方法,所述灾害信息采集步骤包括文字信息采集步骤和灾害视频信息采集步骤。
所述的小麦生产风险信息采集方法,所述农田信息采集步骤包括农田文字信息采集步骤和图像数据采集步骤。
本发明重点围绕小麦生产风险信息采集这一应用需求,提出一套基于移动终端的系统解决方案,其目的是通过即时采集、汇交各网点的小麦生产风险信息,为小麦生产风 险预警模型和预警系统提供实时的数据支持。在传统模式下,信息采集过程中存在着信息滞后、采集效率低、采集成本高等突出问题。而基于智能手机的信息采集系统,则可以随身携带,突破了时间和空间的限制,能够随时随地采集信息、上报信息,并且,在信息采集过程中还能够同时采集空间信息(如经纬度)和多媒体信息(如照片、视频)等。因此,利用智能手机进行信息采集具有其独特优势。
此外,本发明中采用了Android智能手机操作系统。当然本系统亦可采用其他手机操作系统实现。与其他手机操作系统(如Windows Mobile、Symbian、iPhoneOS、PalmOS等)相比,Android具有无可比拟的开放性和灵活性等特点。
Android是Google公司推出的基于Linux系统的移动开发开源平台。从软件分层的角度而言,Android平台由Linux内核、Android运行时库、应用程序框架、应用程序共四部分组成:
①Linux内核:用来提供系统的底层服务。Android系统基于Linux 2.6内核来提供系统的核心服务,例如安全机制、内存管理、进程管理、网络堆栈和驱动模块等。
②Android运行时库和其他库:Android运行时库包含一组核心库(提供了Java语言核心库内的大部分功能)和Dalvik虚拟机。同时Android提供了丰富的类库支持且大部分为开源代码。
③应用程序框架:这一层提供了经过封装后的API,是进行Android系统开发的基础,开发人员大部分情况下是基于应用程序框架进行开发。
④应用程序:包括内置程序和用户程序。Android平台默认内置了一系列的核心应用程序,包括电子邮件、短信、日历、地图、浏览器等。Android应用程序是一种APK(Android Packge)格式文件,运行于Dalvik虚拟机之上。
从上述架构可以看出,Android是一个真正意义上的开放性移动开发平台,它同时包含了底层操作系统和上层应用所需的全部软件,并且所有的Android应用程序之间是完全平等的,都运行在同一个核心引擎上面,这样便大大拓宽了应用程序开发的范围。
Android系统最大的特点即是其开源性质,允许开发人员自由获取、修改源代码,因此显著降低了Android手机的开发成本。自Google公司2007年11月正式发布以来, Android便立即成为众多手机厂商竞相追逐的对象。在全世界范围内,T-Mobile、Motorola、SonyEricsson、HTC、Samsung、Lenovo、中国移动等众多公司都已经推出Android手机产品,而且有越来越多加速上升的趋势。目前,Android系统版本已由最初的1.1、1.5/1.6发展到了2.1/2.2以及即将发布的3.0,手机功能越来越强的同时价格越来越低,极大地推动了Android系统的推广和普及。
附图说明
图1所示为本发明的系统总体架构图。
图2所示为本发明的客户端功能框架图。
图3所示为本发明的服务器端功能框架图。
图4所示为本发明的用户操作流程图。
具体实施方式
以下结合附图,以Android智能手机操作系统的具体实现方案为例,对本发明进行详细说明。
实施例1:
系统总体设计:
参考图1、图2和图3,本系统总体上设计为客户机/服务器的架构。客户机(即智能手机)负责前台界面显示和信息采集,服务器负责数据接收和存储。
为完成系统各功能模块的开发,建立了Android SDK+Java JDK 6+Eclipse 3.5的开发环境,基于Android 1.6版本(API LEVEL 4)开发。
本系统测试环境为:服务器DELL PowerEdge 2950,操作系统Windows Server 2008,数据库系统MS SQL Server。客户端智能手机采用联想LePhone(Android 1.6系统,硬件配置为Snapdragon QSD8250 1GHz CPU,512MB ROM,512MB RAM,3.7英寸AMOLED电容屏)。测试用的3G通道为中国联通的WCDMA网络。
客户端功能框架:
在设计系统的功能框架时,主要分为一般信息采集、农田信息采集和灾害信息采集三个模块。其中,一般信息采集主要是处理一些小麦生产统计信息或一般文本信息的采集录入,主要包括小麦面积数据(如播种面积、收获面积、灌溉面积等)、小麦产量数据(如总产、单产等)、当地气象数据(如日照时数、有效积温、温湿度等)、小麦种植方式以及小麦生产管理等;农田信息采集主要是处理农田空间信息(如海拔、经纬度等)、土壤类型、养分含量等信息的采集录入;灾害信息采集主要是处理灾害类型、发生时间、发生地点、受灾面积、发生频率等信息的采集录入。之所以分为上述三个信息处理模块,是因为一般信息采集只是普通的录入信息并上报,而农田信息采集还需另外启动手机定位设备,灾害信息采集还需另外启动手机视频设备。客户端功能框图如图2所示。
用户通过系统设置功能,可以指定当前采集数据的存储模式和当前采集人员的信息。数据存储模式分为在线存储和离线存储两种:在线存储模式是在采集地点3G信号状态良好的情况下,通过3G通道将采集的数据即时传输并存储于服务器端;离线存储模式是在采集地点无3G信号或3G通道中断的情况下,将采集的数据临时存储于智能手机的本地数据库中,待客户端3G信号恢复、重新建立3G通道后,再将临时存储的数据上传到服务器端。为此,在系统功能框架中专门设计了一个“上传离线数据”的功能。若用户将当前的存储模式设置为在线存储模式时,则还需指定HTTP服务器、SOCKET服务器及相应端口。HTTP服务器用于接收文本和图像数据,SOCKET服务器用于接收视频数据,两者可以是同一台物理服务器。
实施例2:
服务器端设计:
参考图3,根据接收数据类型的不同,服务器端采用了两套接收程序设计。HTTP服务器用于接收文本和图像数据,其实现过程是建立一个.ASPX动态服务器页面,获得来自客户端的POST请求后将POST的数据通过ADO接口保存至SQL数据库。SOCKET服务器用于接收实时传输的视频流数据,服务器程序启动后打开并监听相应的SOCKET端口,一旦监听到有网络连接请求便立即响应,即时处理数据传输,并将接收到的数据保存为 视频文件。待客户端视频数据发送完毕后,再将当前视频文件的文件名(包含路径信息)写入数据库中相应的记录。
实施例3:
一般统计信息的采集:
参考图4,小麦生产风险一般统计信息主要包括小麦作物种植面积统计表、小麦产量统计表、气象信息统计表、小麦亩生产投入表、农户固定资产调查表、农用资金项目表、生产效益调查表、小麦生产价格分类指数表、小麦种植方式统计表、小麦种子施肥及灌溉统计表、小麦常见病虫草害管理情况统计表、农产品出口统计表、农技服务统计表、农民家庭人口劳力及文化程度统计表等14个信息类别。
由于一般统计信息的采集主要是以文本数据为主,因此一般信息的录入和提交采用了表单的格式。根据信息类别的不同,分别设计了不同的表单。用户进入本模块之后,首先在系统菜单中选择要采集的信息类别,然后系统根据用户的选择调出相应的表单界面。
实施例4:
数据的提交方法:
当采集的各项数据填录完毕之后,点击“提交”按钮保存数据。若在“系统设置”中的“存储模式”设置为“在线存储”,此时采集的数据将通过无线网络直接提交至服务器端。其具体的实现过程是基于一种“请求-应答”模式。首先利用DefaultHttpClient获得Android默认的HTTP客户端httpclient,同时由HttpPost生成一个HTTP POST的对象,然后利用ArrayList放入POST内容的键值对,最后通过httpclient的execute()方法发出实际的HTTP POST请求,实现数据的远程提交并取得返回结果。
以下为数据提交部分关键代码的示例:
public String PostData()
{
HttpClient httpclient=new DefaultHttpClient();
HttpPost httppost=new HttpPost(″http://www.abc.com/postdata.aspx″);
try
{
List<NameValuePair>mydata=new ArrayList<NameValuePair>(2);
mydata.add(new BasicNameValuePair(″播种面积″,″35000″));
mydata.add(new BasicNameValuePair(″总产量″,″5800″));
httppost.setEntity(new UrlEncodedFormEntity(mydata));
HttpResponse response=httpclient.execute(httppost);
HttpEntity entity=response.getEntiry();
InputStream is=entity.getContent();
return convertStreamToString(is);
}
……
}
实施例5:
本地数据的存储和上传:
在无线网络不可用的情况下,信息采集人员可将采集的数据暂时存储在手机内建的数据库中,待网络连通后再将这些数据上传至服务器端。在本系统中使用SQLite数据库来实现采集数据的本地存储和管理。
SQLite是一种开源嵌入式数据库引擎,是一种完全独立的、轻量级的关系型数据库系统,支持多数SQL92标准,可以在所有主流操作系统上运行。Android平台提供了与SQLite数据库相关的API来实现对数据库操作的支持。在Android中通过SQLiteDatabase这个类的对象操作数据库,而在实际应用中,一般需要编写一个继承自SQLiteOpenHelper的数据库辅助类来创建和管理数据库。SQLiteDatabase除了提供execSQL()和rawQuery()等直接解析SQL语句的方法以外,还针对insert、update、delete和select等操作专门定义了相关的方法,本实施例中对采集数据的各种操作即是利用这些方法来实现。以下是向手机SQLite数据库插入数据的代码示例:
public void InsertData()
{
MyHelper helper=new MyHelper(this,DB_NAME,null,VERSION);
SQLiteDatabase db=helper.getWritableDatabase();
ContentValues values=new ContentValues();
values.put(″播种面积″,″35000″);
values.put(″总产量″,″5800″);
db.insert(″小麦面积统计表″,″id″,values);
……
}
上述代码中,DB_NAME为数据库名称,VERSION为数据库版本,在这里构造了一个ContentValues对象,然后用insert方法将采集的数据插入SQLite数据库。
当需要将数据上传至服务器时,首先读取暂存在手机中的数据记录,并通过上面的HTTP POST方法来提交数据。以下是循环读取“小麦面积统计表”中相关数据的代码示例:
public void GetData()
{
Cursor c;
……
c=db.query(″小麦面积统计表″,null,null,null,null,null,null);
final int areaindex=c.getColumnIndexOrThrow(″播种面积″);
final int amtindex=c.getColumnIndexOrThrow(″总产量″);
for(c.moveToFirst();!(c.isAfterLast());c.moveToNext())
{
String areas=c.getString(areaindex);
String amounts=c.getString(amtindex);
……
}
}
在将SQLite数据库的数据逐条读取并上传至服务器后,系统将把本地暂存的所有数据全部清空,以避免造成数据重复。
实施例6:
农田空间及土壤信息的采集:
在本系统中利用智能手机的GPS功能,在农田信息采集过程中自动获取当前农田地块的海拔高度和经纬度等空间信息,然后与其他相关信息一起采集并提交至服务器端。
农田空间及土壤信息采集的主要内容见表一。
表一农田空间信息及土壤调查表:
实施例7:
Android系统中的GPS功能是通过LocationManager来进行统一管理的,LocationManager提供了一系列方法和属性来处理与地理位置有关的问题。首先需要通过getSystemService()方法来获取系统的GPS服务,成功获取该服务以后,再注册一个位置更新的事件监听器,然后通过调用其位置更新服务的方法requestLocationUpdates()即可获取实时的卫星数据。在该方法中有一个事件监听器LocationListener参数,负责监听卫星数据的变化。在事件监听器LocationListener中有一个Location类,存放了实时获取的卫星数据,通过调用这个类的有关方法便可得到当前的经度、纬度、海拔等信息。另外,如果需要,还可以利用这个类来计算两个位置之间的距离。
GPS启动状态检测:
进入“农田信息采集”模块后,系统首先需要判断手机的GPS服务是否为开启状态。若已经开启,则直接进入后续步骤;若还未开启,则自动转至GPS页面启动GPS服务。以下代码用于当前GPS启动状态的检测。
private void checkGPS1()
{
LocationManager lm=(LocationManager)getSystemService(Context.LOCATION_SERVIC E);
if(!lm.isProviderEnabled(LocationManager.GPS_PROVIDER))
{
Intent myIntent=new Intent(Settings.ACTION_SECURITY_SETTINGS);
startActivity(myIntent);
}
}
GPS定位状态检测:
当GPS服务启动以后,手机即进入卫星搜索状态。根据当前所处环境的不同,搜 索卫星所需的时间也将不同。系统将在此等待,直至完成搜星过程并获得当前位置信息。以下代码用于当前GPS定位状态的检测。
private void checkGPS2()
{
GpsStatus.Listener listener=new GpsStatus.Listener(){
void onGpsStatusChanged(int event)
{
if(event==GPS_EVENT_SATELLITE_STATUS)
{
GpsStatus status=mLocManager.getGpsStatus(null);
Iterable<GpsSatellite>sats=status.getSatellites();
//根据搜索到卫星数目确定当前的定位状态
}
}};
……
}
空间信息的自动获取:
首先要通过下面的代码注册一个周期性的位置更新:
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000,5,mListener);
上述代码表明从GPS获取位置信息,每隔1000ms更新一次,最小位移变化超过5米。最后一个参数是对LocationListener的一个引用,需要实现这个类。
private final LocationListener mListener=new LocationListener()
{
public void onLocationChanged(Location location)
{//当坐标改变时触发此函数,若Provider传进相同的坐标,则不会被触发}
public void onProviderDisabled(String provider)
{//Provider被disable时触发此函数,如GPS被关闭}
public void onProviderEnabled(String provider)
{//Provider被enable时触发此函数,如GPS被打开}
public void onStatusChanged(String provider,int status,Bundle extras)
{//Provider的转态在可用、暂不可用和无服务三个状态直接切换时触发此函数}
};
在成功注册了一个周期性的坐标更新以后,通过下面的方法即可取得当前坐标。
Location location=lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double latitude=location.getLatitude();//经度
double longitude=location.getLongitude();//纬度
double altitude=location.getAltitude();//海拔
摄像头图像采集:
按照系统操作流程,若用户需要采集当前农田地块的图像数据,系统将打开照片拍摄窗口,并自动开启手机摄像头。待用户拍摄完成后,系统将图像数据暂存为临时文件,然后连同先前采集的数据一起提交保存。
摄像头界面布局:
界面元素(如摄像头的各种功能按钮等)的布局设计是实现图像采集工作的基础。在本实施例中采取了最简单的布局方式,只有一个LinearLayout视图组,在它下面只有一个SurfaceView视图,也就是摄像头预览屏幕。界面布局文件camera_surface.xml的内容如下:
<LinearLayout xmlns:android=″http://schemas.android.com/apk/res/android″
android:layout_width=″fill_parent″android:layout_height=″fill_parent″
android:orientation=″horizontal″>
<SurfaceView android:id=″@+id/surface_camera″
android:layout_width=″fill_parent″
android:layout_height=″fill_parent″>
</SurfaceView>
</LinearLayout>
图像采集实现代码:
首先建立一个名为“CameraView”的Activity类,并实现SurfaceHolder.Callback接口:
public class CamaraView extends Activity implements SurfaceHolder.Callback
接口SurfaceHolder.Callback用来接收摄像头预览界面变化的信息。它实现了三个方法:
①surfaceChanged(当预览界面的格式和大小发生改变时,该方法被调用)
②surfaceCreated(初次实例化,预览界面被创建时,该方法被调用)
③surfaceDestroyed(当预览界面被关闭时,该方法被调用)
下面简要说明在图像采集中如何实现这个接口。
首先在Activity类的onCreate方法中初始化手机的摄像头设置:
//摄像头预览界面将通过全屏显示,没有标题(title),屏幕格式为半透明
getWindow().setFormat(PixelFormat.TRANSLUCENT);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.La youtParams.FLAG_FULLSCREEN);
//设定Activity的布局为前面创建的camera_surface,并创建一个SurfaceView对象,从相应的资源文件中获得
setContentView(R.layout.camera_surface);
mSurfaceView=(SurfaceView)findViewById(R.id.surface_camera);
//从surfaceview中获得holder,并增加callback功能到this,这表明系统的操作(activity)将可以管理这个surfaceview
mSurfaceHolder=mSurfaceView.getHolder();
mSurfaceHolder.addCallback(this);
mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
以下是callback功能的具体实现:
使摄像头做好拍照准备,设定其参数,并开始在手机屏幕中启动预览画面。这里使用了一个mPreviewRunning参数来防止冲突,当mPreviewRunning为true时,表明摄像头处于激活状态,并未被关闭,可被系统使用。
public void surfaceCreated(SurfaceHolder holder)
{
//mCamera是Camera类的一个对象。在surfaceCreated方法中打开摄像头。
mCamera=Camera.open();
}
public void surfaceChanged(SurfaceHolder holder,int format,int w,int h)
{
if(mPreviewRunning){mCamera.stopPreview();}
Camera.Parameters p=mCamera.getParameters();
p.setPreviewSize(w,h);
mCamera.setParameters(p);
try{mCamera.setPreviewDisplay(holder);}
catch(IOException e){e.printStackTrace();}
mCamera.startPreview();
mPreviewRunning=true;
}
拍摄完成后,将关闭摄像头,并释放相关的资源。在此设置mPreviewRunning为false,以此来防止在surfaceChanged方法中的冲突。
public void surfaceDestroyed(SurfaceHolder holder)
{
mCamera.stopPreview();
mPreviewRunning=false;
mCamera.release();
}
最后是实际拍摄图像时的处理:
Camera.PictureCallback mPictureCallback=new Camera.PictureCallback()
{
public void onPictureTaken(byte[]imageData,Camera c)
{
……
File file=new File(″/sdcard/camera.jpg″);
RandomAccessFile raf=new RandomAccessFile(file,″rw″);
raf.write(imageData);
raf.close();
……
}
};
在实际拍照时,该方法被调用。为了取得图像数据,在图像采集界面上创建一个OnClickListener,当用户点击“拍照”按钮时,调用PictureCallBack方法。这个方法提供用以保存图像的字节数组,然后使用Android提供的文件I/O功能,将其从字节数组保存为需要的图像格式。
实施例7:
农业自然灾害信息的采集:
参考图4,农业自然灾害信息的采集,除去一般文本信息以外,可能还需要采集视频信息,而视频信息一般数据量都较大,必须要经由3G网络来进行传输。目前,我国的3G网络还处于建设发展阶段,包括移动、联通、电信在内的三大移动网络运营商 均投入了大量资源进行3G基站建设,虽然全国各省区地级及以上城市、多数县级市和一些重点乡镇已经覆盖了3G网络,但仍有部分地区尤其是乡村还接收不到3G信号。就本系统的应用环境而言,信息采集将主要是在农村地区进行。在没有3G网络的情况下,普通文本数据的采集和传输可通过2G网络进行,但图像或视频数据则必须要通过3G网络。因此,本系统在进行远程视频之前首先要检测本地的信号强度,只有在3G信号满足要求的强度时才可以进行视频传输。
手机信号状态检测:
手机信号强度通常是以dBm或ASU的形式度量。dBm是每毫瓦特的电磁波产生的功率,ASU则表示手机将它的位置传递给附近的信号塔的速率。按照中国移动的规范规定,手机接收电平>=(城市取-90dBm,乡村取-94dBm)时,则此处无线信号强度视为满足覆盖要求。本实施例即依据这个标准对当前的信号强度进行判断。
要获得手机的信号强度,可以通过android.telephony.PhoneStateIntentReceiver类提供的getSignalStrength()方法。以下是代码示例:
PhoneStateIntentReceiver mPhoneStateReceiver=new PhoneStateIntentReceiver(this,Handler);
int signalDbm=mPhoneStateReceiver.getSignalStrengthDbm();
int signalAsu=mPhoneStateReceiver.getSignalStrength();
视频采集与传输:
当用户选择进行远程视频且3G信号强度满足要求时,系统将打开手机摄像头并出现视频采集画面,此时用户即可通过3G网络将视频数据流通过socket方式传输到服务器端并保存为视频文件(3gp文件)。以下是部分实现代码:
发送端(智能手机):
//建立与服务器端的socket连接,ip为server地址,port为server端口
socket=new Socket(InetAddress.getByAddress(ip),port);
ParcelFileDescriptor pfd=ParcelFileDescriptor.fromSocket(socket);
//获取屏幕信息
WindowManager w=(WindowManager)getSystemService(Context.WINDOW_SERVICE);
Display display=w.getDefaultDisplay();
mMediaRecorder=new MediaRecorder();
//设置以流方式输出
mMediaRecorder.setOutputFile(pfd.getFileDescriptor());
mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mMediaRecorder.setVideoSize(display.getWidth(),display.getHeight());
mMediaRecorder.setVideoFrameRate(15);
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mMediaRecorder.setMaxDuration(10000);
……
接收端(远程服务器):
public MultiThreadServer()throws IOException
{
//开启server端口,建立线程池
serverSocket=new ServerSocket(port);
executorService=Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()*POOL_SIZE);
}
public void service()
{
while(true)
{
Socket socket=null;
//接收客户连接,只要客户进行了连接就会触发accept()
socket=serverSocket.accept();
//启动一个新的socket线程
new Thread(new Handler(socket)).start();
}
}
public Handler(Socket socket)
{
this.socket=socket;
d=new File(″D:/video″);
if(!d.exists()){d.mkdirs();}
store=File.createTempFile(″test″,″.3gp″,d);
fos=new FileOutputStream(store);
socketIn=socket.getInputStream();
……
}
public void run()
{
while((length=socketIn.read(buffer))!=-1)
{
fos.write(bufier,O,length);
fos.flush();
}
fos.flush();store=null;socketIn.close();
……
}
结论
基于智能手机和3G网络的移动业务应用是今后行业信息化发展的必然趋势之一,而开源手机操作系统平台Android的出现则大大推动了这一进程。
基于Android智能手机的小麦生产风险信息采集系统即是在农业行业中的一个典型应用。该系统具有安装、携带、运行方便,操作简单,数据传输速度快,采集信息多样化等特点,非常适用于对时间相对敏感的即时性信息的采集。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (8)
1.一种基于智能手机的小麦生产风险信息采集系统,其特征在于,包括客户端和服务器端,所述客户端采用智能手机,在所述客户端设置灾害信息采集模块、农田信息采集模块和一般信息采集模块,所述各个信息采集模块均与信息上传模块连接,通过所述信息上传模块将采集到的信息上传到所述服务器端,所述各个信息采集模块同时均与本地存储模块连接,所述本地存储模块用于将各个信息采集模块采集到的信息存储在本地,所述本地存储模块还与所述信息上传模块连接,用于通过所述信息上传模块将存储在本地的信息上传到所述服务器端。
2.根据权利要求1所述的小麦生产风险信息采集系统,其特征在于,所述灾害信息采集模块包括文字信息采集模块和灾害视频信息采集模块。
3.根据权利要求1所述的小麦生产风险信息采集系统,其特征在于,所述农田信息采集模块包括农田文字信息采集模块和图像数据采集模块。
4.根据权利要求1所述的小麦生产风险信息采集系统,其特征在于,还包括系统设置模块,用于设置信息采集人员信息和信息存储模式。
5.一种基于智能手机的小麦生产风险信息采集方法,其特征在于,包括信息采集和信息上传步骤:
所述信息采集步骤包括:A1:启动系统;A2:选择信息采集种类,若选择采集灾害信息则进行步骤A3;若选择进行农田信息采集,则进行步骤A4;若选择进行一般信息采集,则进行步骤A5;A3:灾害信息采集步骤;A4:农田信息采集步骤;A5:一般信息采集步骤;所述步骤A3、A4、A5不区分先后顺序;
所述信息上传步骤包括:检测判断系统设置的存储模式,若为本地存储,则将采集到的信息存储在本地客户端;若为在线存储模式,则将采集到的信息上传到所述服务器端。
6.根据权利要求5所述的小麦生产风险信息采集方法,其特征在于,还包括系统设置步骤,用于设置信息采集人员信息和信息存储模式。
7.根据权利要求5所述的小麦生产风险信息采集方法,其特征在于,所述灾害信息采集步骤包括文字信息采集步骤和灾害视频信息采集步骤。
8.根据权利要求5所述的小麦生产风险信息采集方法,其特征在于,所述农田信息采集步骤包括农田文字信息采集步骤和图像数据采集步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102791292A CN101969455A (zh) | 2010-09-13 | 2010-09-13 | 一种基于智能手机的小麦生产风险信息采集系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102791292A CN101969455A (zh) | 2010-09-13 | 2010-09-13 | 一种基于智能手机的小麦生产风险信息采集系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101969455A true CN101969455A (zh) | 2011-02-09 |
Family
ID=43548559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102791292A Pending CN101969455A (zh) | 2010-09-13 | 2010-09-13 | 一种基于智能手机的小麦生产风险信息采集系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101969455A (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102271307A (zh) * | 2011-05-23 | 2011-12-07 | 武汉理工大学 | 桥梁施工期安全监测与应急救援信息采集传输方法 |
CN102916987A (zh) * | 2011-08-02 | 2013-02-06 | 天津中启创科技有限公司 | 基于云计算架构的数据采集管理系统 |
CN102916985A (zh) * | 2011-08-02 | 2013-02-06 | 天津中启创科技有限公司 | 数据采集管理系统的工作方法 |
CN103179173A (zh) * | 2011-12-26 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 超文本传输系统、客户端和超文本传输方法 |
CN103795936A (zh) * | 2013-11-14 | 2014-05-14 | 深圳光启创新技术有限公司 | 控制移动终端光信号的方法、装置及移动终端 |
CN104567985A (zh) * | 2015-01-28 | 2015-04-29 | 桥软科技(北京)有限公司 | 桥梁信息处理方法及装置 |
CN104618652A (zh) * | 2015-02-02 | 2015-05-13 | 上海卓悠网络科技有限公司 | 一种优化智能终端自拍效果的方法及装置 |
CN104618687A (zh) * | 2015-01-16 | 2015-05-13 | 北京科技大学 | 一种基于Android智能移动终端环境监控系统 |
CN104678804A (zh) * | 2015-01-22 | 2015-06-03 | 中国农业大学 | 一种玉米分散考种数据采集方法 |
CN104866956A (zh) * | 2015-05-12 | 2015-08-26 | 集时通(福建)信息科技有限公司 | 应用于养殖业和种植业的现场勘险信息获取辅助管理系统 |
CN105337821A (zh) * | 2015-10-22 | 2016-02-17 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种基于upnp协议的物联网系统及物联网数据传输方法 |
CN105892891A (zh) * | 2014-12-19 | 2016-08-24 | 上海涌杰信息科技有限公司 | 移动终端及其中应用程序的操作行为数据的控制方法 |
CN106027772A (zh) * | 2016-05-06 | 2016-10-12 | 杨晶 | 一种土壤检测智能手机及检测土壤的方法 |
CN106249646A (zh) * | 2016-08-11 | 2016-12-21 | 廖金能 | 一种基于wifi的物联网设备监控系统及其数据处理方法 |
CN106604249A (zh) * | 2016-12-05 | 2017-04-26 | 国网北京市电力公司 | 充电设施的通信系统和方法 |
CN106709841A (zh) * | 2016-12-08 | 2017-05-24 | 中国矿业大学(北京) | 一种基于大数据的社会风险信息采集处理技术和系统 |
CN108833244A (zh) * | 2018-06-11 | 2018-11-16 | 无锡联力电子科技股份有限公司 | 一种新能源汽车can总线远程采集方法、装置及系统 |
CN110896493A (zh) * | 2018-09-13 | 2020-03-20 | 武汉斗鱼网络科技有限公司 | 一种链接弹幕的方法及移动终端 |
CN112835518A (zh) * | 2021-01-27 | 2021-05-25 | 歌尔科技有限公司 | 数据存储方法、装置、可穿戴设备及存储介质 |
CN113722400A (zh) * | 2021-09-08 | 2021-11-30 | 电子科技大学 | 一种基于群智感知的数据采集系统及方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350834A (zh) * | 2008-07-21 | 2009-01-21 | 深圳市高正软件有限公司 | 一种信息采集和信息上传异步进行的信息采集系统 |
-
2010
- 2010-09-13 CN CN2010102791292A patent/CN101969455A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350834A (zh) * | 2008-07-21 | 2009-01-21 | 深圳市高正软件有限公司 | 一种信息采集和信息上传异步进行的信息采集系统 |
Non-Patent Citations (1)
Title |
---|
孟志军,赵春江,王秀,陈立平,薛绪掌: "基于GPS的农田多源信息采集系统的研究与开发", 《农业工程学报》 * |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102271307A (zh) * | 2011-05-23 | 2011-12-07 | 武汉理工大学 | 桥梁施工期安全监测与应急救援信息采集传输方法 |
CN102916987A (zh) * | 2011-08-02 | 2013-02-06 | 天津中启创科技有限公司 | 基于云计算架构的数据采集管理系统 |
CN102916985A (zh) * | 2011-08-02 | 2013-02-06 | 天津中启创科技有限公司 | 数据采集管理系统的工作方法 |
CN103179173A (zh) * | 2011-12-26 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 超文本传输系统、客户端和超文本传输方法 |
CN103179173B (zh) * | 2011-12-26 | 2018-03-02 | 腾讯科技(深圳)有限公司 | 超文本传输系统、客户端和超文本传输方法 |
CN103795936A (zh) * | 2013-11-14 | 2014-05-14 | 深圳光启创新技术有限公司 | 控制移动终端光信号的方法、装置及移动终端 |
CN105892891A (zh) * | 2014-12-19 | 2016-08-24 | 上海涌杰信息科技有限公司 | 移动终端及其中应用程序的操作行为数据的控制方法 |
CN105892891B (zh) * | 2014-12-19 | 2019-02-22 | 深圳市瑞捷恩科技有限公司 | 移动终端及其中应用程序的操作行为数据的控制方法 |
CN104618687A (zh) * | 2015-01-16 | 2015-05-13 | 北京科技大学 | 一种基于Android智能移动终端环境监控系统 |
CN104678804A (zh) * | 2015-01-22 | 2015-06-03 | 中国农业大学 | 一种玉米分散考种数据采集方法 |
CN104678804B (zh) * | 2015-01-22 | 2018-07-27 | 中国农业大学 | 一种玉米分散考种数据采集方法 |
CN104567985A (zh) * | 2015-01-28 | 2015-04-29 | 桥软科技(北京)有限公司 | 桥梁信息处理方法及装置 |
CN104618652A (zh) * | 2015-02-02 | 2015-05-13 | 上海卓悠网络科技有限公司 | 一种优化智能终端自拍效果的方法及装置 |
CN104866956A (zh) * | 2015-05-12 | 2015-08-26 | 集时通(福建)信息科技有限公司 | 应用于养殖业和种植业的现场勘险信息获取辅助管理系统 |
CN104866956B (zh) * | 2015-05-12 | 2019-03-15 | 集时通(福建)信息科技有限公司 | 应用于养殖业和种植业的现场勘险信息获取辅助管理系统 |
CN105337821A (zh) * | 2015-10-22 | 2016-02-17 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种基于upnp协议的物联网系统及物联网数据传输方法 |
CN106027772A (zh) * | 2016-05-06 | 2016-10-12 | 杨晶 | 一种土壤检测智能手机及检测土壤的方法 |
CN106249646A (zh) * | 2016-08-11 | 2016-12-21 | 廖金能 | 一种基于wifi的物联网设备监控系统及其数据处理方法 |
CN106604249A (zh) * | 2016-12-05 | 2017-04-26 | 国网北京市电力公司 | 充电设施的通信系统和方法 |
CN106709841A (zh) * | 2016-12-08 | 2017-05-24 | 中国矿业大学(北京) | 一种基于大数据的社会风险信息采集处理技术和系统 |
CN108833244A (zh) * | 2018-06-11 | 2018-11-16 | 无锡联力电子科技股份有限公司 | 一种新能源汽车can总线远程采集方法、装置及系统 |
CN110896493A (zh) * | 2018-09-13 | 2020-03-20 | 武汉斗鱼网络科技有限公司 | 一种链接弹幕的方法及移动终端 |
CN110896493B (zh) * | 2018-09-13 | 2022-02-08 | 武汉斗鱼网络科技有限公司 | 一种链接弹幕的方法及移动终端 |
CN112835518A (zh) * | 2021-01-27 | 2021-05-25 | 歌尔科技有限公司 | 数据存储方法、装置、可穿戴设备及存储介质 |
CN113722400A (zh) * | 2021-09-08 | 2021-11-30 | 电子科技大学 | 一种基于群智感知的数据采集系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101969455A (zh) | 一种基于智能手机的小麦生产风险信息采集系统和方法 | |
CN109684530B (zh) | 基于web管理与手机小程序应用的信息推送服务系统 | |
CN103155477B (zh) | 分布式计算环境中的数据同步 | |
US20210337015A1 (en) | Method and system of application development for multiple device client platforms | |
CN107330019A (zh) | 搜索方法及装置 | |
CN105389325A (zh) | 内容搜索方法和实施内容搜索方法的电子装置 | |
Espada et al. | Extensible architecture for context-aware mobile web applications | |
CN106292420A (zh) | 农田实验数据的自动采集与管理系统 | |
CN101557297A (zh) | 一种基于互联网的开放式电信业务生成系统及方法 | |
CN107430512A (zh) | 管理机器对机器系统中的应用关系 | |
CN202422195U (zh) | 城市管理与社区服务综合应用移动终端 | |
CN109313587A (zh) | 用于在服务层处使能数据分析服务的方法 | |
CN103874997B (zh) | 在计算装置中产生和检索加位置标签的内容的设备和方法 | |
KR20140032205A (ko) | 모바일 기반 재난피해 조사시스템 및 방법 | |
CN106447471A (zh) | 房屋买卖交易管理系统 | |
CN1889110B (zh) | 一种智能气候和交通状况提醒系统 | |
KR101243866B1 (ko) | 지역별 농산물 분포도 모니터링 방법 | |
CN110309422A (zh) | 推送方法、服务器及终端 | |
CN101420774A (zh) | 一种无线传感器网络系统及其处理数据的方法 | |
CN113138771B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN115796758A (zh) | 一种工厂规则管理平台 | |
KR101397176B1 (ko) | 사용자 맞춤형 pos 서비스 제공 방법 | |
CN102572806A (zh) | 基于Msky平台的移动终端适配系统及其方法 | |
CN102368849A (zh) | 智能手机通讯录通过网络进行状态更新的系统及方法 | |
CN112199528B (zh) | 一种大规模遥感数据在线获取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110209 |