首页> 中国专利> 一种基于安卓设备的samba服务实现方法及系统

一种基于安卓设备的samba服务实现方法及系统

摘要

本发明公开了一种基于安卓设备的samba服务实现方法及系统,所述方法包括:安卓设备继承Alfresco-jlan库中的CIFS协议类,定义一个指向待解析配置文件的解析类的对象;安卓设备采用ContentProvider接口对待解析配置文件进行操作,实现samba服务。本发明通过在安卓设备上实现samba服务后,可采用windows自带的samba客户端,能够正常的访问android设备上的文件。

著录项

  • 公开/公告号CN105610908A

    专利类型发明专利

  • 公开/公告日2016-05-25

    原文格式PDF

  • 申请/专利权人 TCL集团股份有限公司;

    申请/专利号CN201510962431.0

  • 发明设计人 董阳明;

    申请日2015-12-21

  • 分类号H04L29/08;

  • 代理机构深圳市君胜知识产权代理事务所;

  • 代理人王永文

  • 地址 516006 广东省惠州市仲恺高新技术开发区十九号小区

  • 入库时间 2023-12-18 15:33:46

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-09-10

    授权

    授权

  • 2017-01-18

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20151221

    实质审查的生效

  • 2016-05-25

    公开

    公开

说明书

技术领域

本发明涉及通信领域,尤其涉及一种基于安卓设备的samba服务实现方法及系统。

背景技术

现有技术中,在当前的android系统上并没有集成samba服务,而基于android设备的模块电视之家庭云,本身是带有存储功能的,需要提供一些网络服务来对文件进行管理和访问,samba是其中一种网络服务。

在android的应用商店里面有在android系统上运行的samba服务的APP,但不公开源码,无法根据自己的需要做对源码进行修改,不方便开发新的功能。

因此,现有技术还有待于改进和发展。

发明内容

鉴于现有技术的不足,本发明目的在于提供一种基于安卓设备的samba服务实现方法及系统,旨在解决现有技术android系统上运行的samba服务的APP,但不公开源码,无法根据自己的需要做对源码进行修改,不方便开发新的功能的缺陷。

本发明的技术方案如下:

提供一种基于安卓设备的samba服务实现方法,方法包括:

A、安卓设备继承Alfresco-jlan库中的CIFS协议类,定义一个指向待解析配置文件的解析类的对象;

B、安卓设备采用ContentProvider接口对配置文件进行操作,实现samba服务。

在一实施例中,所述步骤A具体包括:

A1、安卓设备加载待解析配置文件,根据待解析配置文件的定义创建CIFS对象;

A2、在待解析配置文件中添加需要监控的CIFS服务并启动,接收并处理CIFS客户端请求;

A3、当检测到待解析配置文件修改时,停止CIFS服务,重新加载配置文件。

在一实施例中,所述步骤C中对配置文件进行管理具体包括:

B1、通过对待解析配置文件进行配置后,windows自带的samba客户端与应用APP进行数据共享;

B2、将针对samba服务的配置信息永久保存,当设备断电重启时,恢复到断电前的配置;

B3、当检测到待解析配置文件修改时通知samba服务启用修改后的配置。

在一实施例中,所述步骤B1中通过对待解析配置文件进行配置具体包括:通过安卓设备中的ContentProvider接口的查询、修改、删除对待解析配置文件进行配置。

在一实施例中,所述步骤B3具体包括:

B31、在封装的Samba服务的类中定义一个staticbool变量以及实现一个static方法;

B32、当待解析配置文件发生变化时,就调用static方法修改static变量的值,通知samba服务启用修改后的配置。

本发明还提供一种基于安卓设备的samba服务实现系统,所述系统包括:

协议类继承模块,用于安卓设备继承Alfresco-jlan库中的CIFS协议类,定义一个指向待解析配置文件的解析类的对象;

配置文件管理模块,用于安卓设备采用ContentProvider接口对配置文件进行操作,实现samba服务。

在一实施例中,所述协议类继承模块具体包括:

加载与创建单元,用于安卓设备加载待解析配置文件,根据待解析配置文件的定义创建CIFS对象;

添加与处理单元,用于在待解析配置文件中添加需要监控的CIFS服务并启动,接收并处理CIFS客户端请求;

检测与重新加载单元,用于当检测到待解析配置文件修改时,停止CIFS服务,重新加载配置文件。

在一实施例中,所述对配置文件进行管理具体还包括:

配置单元,用于通过对待解析配置文件进行配置后,windows自带的samba客户端与应用APP进行数据共享;

断电恢复单元,用于将针对samba服务的配置信息永久保存,当设备断电重启时,恢复到断电前的配置;

通知单元,用于当检测到配置文件修改时通知samba服务启用修改后的配置。

在一实施例中,所述通过对待解析配置文件进行配置具体包括:通过安卓设备中的ContentProvider接口的查询、修改、删除对待解析配置文件进行配置。

在一实施例中,所述通知单元具体包括:

变量定义单元,用于在封装的Samba服务的类中定义一个staticbool变量以及实现一个static方法;

调用与通知单元,用于当解析类的对象发生变化时,就调用static方法修改static变量的值,通知samba服务启用修改后的配置。

本发明提供了一种基于安卓设备的samba服务实现方法及系统,本发明通过在安卓设备上实现samba服务后,可采用windows自带的samba客户端,能够正常的访问android设备上的文件。

附图说明

图1为本发明的一种基于安卓设备的samba服务实现方法的较佳实施例的流程图。

图2是本发明的一种基于安卓设备的samba服务实现方法的具体应用实施例中实现自己的子类的方法的流程图。

图3是本发明的一种基于安卓设备的samba服务实现方法的具体应用实施例中的查询接口的管理方法的流程图。

图4是本发明的一种基于安卓设备的samba服务实现方法的具体应用实施例中的修改接口的管理方法的流程图。

图5是本发明的一种基于安卓设备的samba服务实现方法的具体应用实施例中实现开机启动的配置方法的流程图。

图6为本发明的一种基于安卓设备的samba服务实现系统的较佳实施例的功能原理框图。

具体实施方式

为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供了一种基于安卓设备的samba服务实现方法的较佳实施例的流程图,如图1所示,所述方法包括:

步骤S100、安卓设备继承Alfresco-jlan库中的CIFS协议类,定义一个指向待解析配置文件的解析类的对象。

具体实施时,Alfresco是一个免费的/自由企业包含内容存储库、一个开箱即用的web门户框架来内容管理和使用标准门户内容的系统。它提供了在MicrosoftWindows和类unix操作系统的文件的兼容性,该程序由Java技术开发。其中Alfresco-jlan代表用java语言开发的开源企业内容管理系统。CIFS是CommonInternetFileSystem的缩写,中文释义为用户网络设备间文件共享,其中待解析配置文件为XML文件,解析类的对象为XML文件解析类的对象,XML是ExtensibleMarkupLanguage缩写,中文释义为可扩展标记语言。

在步骤S100后还包括如下步骤:安卓设备对Alfresco-jlan库中的用于调试的日志接口DebugInterface的所有接口进行定义。

具体实施时,Alfresco-jlan有提供日志接口DebugInterface,做为调试的主要手段,需要实现其定义的所有接口,也可以是空函数。

步骤S200、安卓设备采用ContentProvider接口对待解析配置文件进行操作,实现samba服务。

具体实施时,针对待解析配置文件的管理有三方面的内容:(1)实现与应用APP进行数据共享;(2)需要将针对客户端的配置信息永久保存,当设备断电重启时,能够恢复到断电前的配置;(3)待解析配置文件修改需要通知samba的服务启用新的配置。

进一步的实施例中,所述步骤S100具体包括:

步骤S101、安卓设备加载待解析配置文件,根据待解析配置文件的定义创建CIFS对象;

步骤S102、在待解析配置文件中添加需要监控的CIFS服务并启动,接收并处理CIFS客户端请求;

步骤S103、当检测到待解析配置文件修改时,停止CIFS服务,重新加载待解析配置文件。

具体实施时,安卓设备Alfresco-jlan库是采用java实现的samba服务,其已经完整的实现了samba协议,故目前只需要继承其基础类,并在其基础类上进行二次开发就可以实现samba服务。

安卓设备首先实现自己的子类,继承库已经实现了CIFS协议的类(JLANCifsServer),并且定义一个XML文件解析类(XMLServerConfiguration)的对象,该对象指向待解析配置文件。

具体如图2所示,图2为本发明的基于安卓设备的samba服务实现方法的具体应用实施例中实现自己的子类的方法的流程图,其中,XMLServerConfiguration类:此类实现了解析XML格式的解析,并采用了观察者的设计模式,将需要管理的服务添加到其观察列表中;JLANCifsServer类:实现了CIFS协议。方法具体包括:

步骤S10、开始;

步骤S20、加载待解析配置文件;

步骤S30、根据待解析配置文件的定义创建CIFS对象;

步骤S40、在待解析配置文件中添加需要监控的CIFS服务;

步骤S50、启动CIFS服务;

步骤S60、接收并处理CIFS客户端请求;

步骤S70、判断CIFS服务是否运行出错,如果是,则执行步骤S93,如果否,则执行步骤S80;

步骤S80、判断待解析配置文件是否被修改,如果是,则执行步骤S90,如果否,则执行步骤S60;

步骤S90、停止CIFS服务;

步骤S91、重新加载待解析配置文件;

步骤S92、启动CIFS服务;

步骤S93、结束。

进一步的,所述步骤S200对待解析配置文件进行管理具体包括:

步骤S201、通过对待解析配置文件进行配置后,windows自带的samba客户端与应用APP进行数据共享;

步骤S202、将针对samba服务的配置信息永久保存,当设备断电重启时,恢复到断电前的配置;

步骤S203、当检测到待解析配置文件修改时通知samba服务启用修改后的配置。

具体实施时,其中步骤S201中通过对待解析配置文件进行配置具体包括:通过安卓设备中的ContentProvider接口的查询、修改、删除对待解析配置文件进行配置。

具体地,如图3所示,图3为本发明基于安卓设备的samba服务实现方法的具体应用实施例中的查询接口的管理方法,具体流程:

步骤S1、开始;

步骤S2、判断是否初始化缓存,如果是,则执行步骤S4,如果否,则执行步骤S3;

步骤S3、从数据库读取用户信息初始化缓存;

步骤S4、根据设计的表格结构构造数组并将数据返回给请求者;

步骤S5、结束。

其中,查询接口做了特殊设计,没有采用sqlite数据库的原有查询接口,而是采用了MatrixCursor自行定制一个Cursor(光标),因为有些用户数据不需要显示在app上,还有就是当用户首次访问时并不需要将用户信息保存到数据库中,而是保存在一个缓存中,但这部分数据仍然要显示到app上,只有当用户的权限被修改时才会写入到数据库。此接口就是从缓存中读取数据并按照自行设计的表的格式将数据封装返回给应用APP。

具体地,如图4所示,图4为本发明基于安卓设备的samba服务实现方法的具体应用实施例中的修改接口的管理方法。具体流程为:

步骤S11、开始;

步骤S12、判断用户是否已经在数据中建档,如果是,则执行步骤S14,如果否,则执行步骤S13;

步骤S13、更新缓存,同时更新用户在数据库中的记录;

步骤S14、更新缓存,在数据中新建一条用户记录;

步骤S15、更新待解析配置文件,并且通过samba服务,并返回结果;

步骤S16、结束。

其中,修改主要是针对用户的访问权限(全盘访问/只能访问公有盘),要考虑的点是当用户修改权限时,是否已经在数据中存储记录,如果存在,则更新即可,如果不存在,则需要在数据库中插入一条新的记录,并修改待解析配置文件,通知samba服务启用新的配置。

如果是删除接口,先从待解析配置文件中删除相关的配置,再从数据库中删除用户所在的记录,最后通知samba服务启用新配置,返回结果给调用者。

其中步骤S203具体包括:

步骤S231、在封装的Samba服务的类中定义一个staticbool变量以及实现一个static方法;

步骤S232、当待解析配置文件发生变化时,就调用static方法修改static变量的值,通知samba服务启用修改后的配置。

具体实施时,待解析配置文件修改通知samba服务进行配置更新,在封装的Samba服务的类(步骤A中定义的子类)中定义一个staticbool变量以及实现一个static方法,当待解析配置文件发生变化时,就调用static方法修改static变量的值。

进一步的实施例中,步骤S200之后还包括:

步骤S300、将待解析配置文件放在assets目录下,打包android程序时一起打包。

具体实施时,将待解析配置文件放在assets目录下,打包android程序时会一起打包进去,另外此文件在服务启动后,可以进入后台查看配置文件的内容,也方便调试,还有一点就是对文件大小没有限制。

本发明还提供了一种基于安卓设备的samba服务实现方法的具体实施例,其中待解析配置文件操作的一种实现方式:待解析配置文件是XML格式的文件,可以自己根据xml结构去实现对其的解析,也可以采用已经存在的类,org.w3c.dom以及javax.xml.transform(将在内存中的xml数据存储到文件)。其中org.w3c.dom为文档对象模型(DOM)提供接口,该模型是JAVAAPIFORXMLProcessing的组件API,javax.xml.transform中java包定义了从源到结果进行转换的指定接口。ContentProvider为存储和获取数据提供统一的接口;可以在不同的应用程序之间共享数据;Cursor为提供任意访问读写从数据库返回的结果接口;MatrixCursor为可变的Cursor,当结果无法通过查询数据库直接返回时,此时需要实现一个类似数据返回结果。

其中待解析配置文件配置方法具体包括:

步骤S1001、开始;

步骤S1002、将待解析配置文件以XML的格式加载到内存中,并构建索引树;

步骤S1003、判断是否对节点进行删除/修改,如果是,则执行步骤S1004,如果否,则执行步骤S1031;

步骤S1004、判断对应的节点是否在配置树中,如果是,则执行步骤S1005,如果否,则执行步骤S1007;

步骤S1005、执行删除/修改操作;

步骤S1006、将更新的内容保存到待解析配置文件中;

步骤S1007、返回错误;

步骤S1031、判断是否对增加,如果是,则执行步骤S1032,如果否,则执行步骤S1033;

步骤S1032、查找其父节点;

步骤S1033、判断是否查找,如果是,则执行步骤S1035,如果否,则执行步骤S1034;

步骤S1034、返回错误;

步骤S1035、对应的节点在配置树中;

步骤S1036、返回对应的值;

步骤S1008、结束。

其中查出对应的节点是否在配置树中,采用递归的方式查找。实现开机启动,这个可以捕获系统启动完毕或者系统网络已经建立成功所发送的消息来进行。

在配置时实现开机启动,这个可以捕获系统启动完毕或者系统网络已经建立成功所发送的消息来进行。实现开机启动的配置流程具体如图5所示,具体包括:

步骤S111、开始;

步骤S112、判断是否接收到BOOT_COMPLETED信号,如果是,则执行步骤S113,如果否,则执行步骤S112;

步骤S113、通过Intent启动服务;

步骤S114、结束。

具体地,BOOT_COMPLETED是广播消息,当android系统启动完毕之后,会广播此消息,但只广播一次。Intent是动作描述,负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,并完成组件的调用。

在上述方法实施例的基础上,本发明还提供了一种基于安卓设备的samba服务实现系统的较佳实施例的功能原理框图,如图6所示,所述系统包括:

协议类继承模块100,用于安卓设备继承Alfresco-jlan库中的CIFS协议类,定义一个指向待解析配置文件的解析类的对象;具体如上所述。

配置文件管理模块200,用于安卓设备采用ContentProvider接口对待解析配置文件进行操作,实现samba服务;具体如上所述。

所述的基于安卓设备的samba服务实现系统,其中,所述协议类继承模块具体包括:

加载与创建单元,用于安卓设备加载待解析配置文件,根据待解析配置文件的定义创建CIFS对象;具体如上所述。

添加与处理单元,用于在待解析配置文件中添加需要监控的CIFS服务并启动,接收并处理CIFS客户端请求;具体如上所述。

检测与重新加载单元,用于当检测到待解析配置文件修改时,停止CIFS服务,重新加载待解析配置文件;具体如上所述。

所述的基于安卓设备的samba服务实现系统,其中,所述对待解析配置文件进行管理具体还包括:

配置单元,用于通过对待解析配置文件进行配置后,windows自带的samba客户端与应用APP进行数据共享;具体如上所述。

断电恢复单元,用于将针对samba服务的配置信息永久保存,当设备断电重启时,恢复到断电前的配置;具体如上所述。

通知单元,用于当检测到待解析配置文件修改时通知samba服务启用修改后的配置;具体如上所述。

所述的基于安卓设备的samba服务实现系统,其中,所述通过对待解析配置文件进行配置具体包括:通过安卓设备中的ContentProvider接口的查询、修改、删除对待解析配置文件进行配置;具体如上所述。

所述的基于安卓设备的samba服务实现系统,其中,所述通知单元具体包括:

变量定义单元,用于在封装的Samba服务的类中定义一个staticbool变量以及实现一个static方法;具体如上所述。

调用与通知单元,用于当待解析配置文件发生变化时,就调用static方法修改static变量的值,通知samba服务启用修改后的配置;具体如上所述。

综上所述,本发明提供了一种基于安卓设备的samba服务实现方法及系统,所述方法包括:安卓设备继承Alfresco-jlan库中的CIFS协议类,定义一个指向待解析配置文件的解析类的对象;安卓设备采用ContentProvider接口对配置文件进行操作,实现samba服务。本发明通过在安卓设备上实现samba服务后,可采用windows自带的samba客户端,能够正常的访问android设备上的文件。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号