关于移动设备自动挂载的实现

关于移动设备自动挂载的实现

一、基本思想:
1、Hal将硬件设备进行抽象,提供给用户程序访问底层设备,Hal中管理当前系统所有底层硬件设备的属性值和状态信息。
2、使用DBus将应用程序与Hal建立联接,这样应用程序可以通过Dbus远程调用Hal给用户程序的提供的接口获取存储在Hal中的设备信息。

二、具体步聚如下:
1、首先能过DBus建立与hal的连接。
        1)使用Hal提供的DBus服务程序 "org.freedesktop.Hal"
        2)使用Hal提供的DBus接口 "org.freedesktop.Hal.Device"

2、通过连接,对hal中提供的如设备添加信号和设备删除信号进行监听。
    1)设备添加:
         当设备添加时,Hal将向应用程序发出设备添加的信号,可以通过信号附带的一字符串类型参数udi(惟一设备标识)来跟踪标识添加的设备,通过udi应用程序可以使用dbus调用hal提供的接口,得到udi所代表设备的属性。
    设备添加的过程中过滤掉不包括可挂载属性的设备,对于留下的可以被系统挂载的设备进行监听,一旦属性和状态的发生改变立即通知应用程序做出相应的处理。   
         当所有准备工作初始化结束后,根据udi从hal中取得的对应分区的设备名,设备文件系统类型等基本信息。
    将所有挂载的目录显示在/media目录下,在执行mount命令之前,先创建挂载目录,如/media/disk,在创建之前进行判断,如果目录存加上不同的编号如/media/disk-n (1..n)。
    创建目录成功后,立即执行mount命令,设备便会被系统挂载上。   
    2)设备移除:
        当移动设备被移除时,hal同样会发出设备移除的信号,调用umount -l 设备挂载目录,如/media/disk,系统将设置卸载,并且将/media/disk删除。

三、存在的不足:
1、通过这种方式虽然能够实现移动设备的自动挂载,但是对设备挂载过程中的可能出现错误和异常没有很好的处理。
2、程序细节还需要进一步改善。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值