android mtp 获取单反相机中的照片

本文介绍如何使用Android MTP API实现从相机设备导出照片的功能。通过注册广播接收器监听USB设备连接,并利用MTP协议获取存储信息及照片handle,最终实现照片信息的读取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过调用Android mtp API 完成相机照片的导出

核心代码:

//注册广播
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
registerReceiver(mtpReceiver, intentFilter);

//这里通过 广播回调 拿到 usbdevice
UsbDevice usbDevice = data.getParcelableExtra(UsbManager.EXTRA_DEVICE);

UsbDeviceConnection usbDeviceConnection = manager.openDevice(usbDevice);
mUsbDevice = usbDevice;
//然后再拿到mtpdevice
MtpDevice mMtpDevice = new MtpDevice(usbDevice);
//获取存储对象信息
int[] storageIds = mMtpDevice.getStorageIds();
for (int storageId : storageIds) {
    //获取存储对象下照片的handle
    int[] objectHandles = 
    mMtpDevice.getObjectHandles(storageId,MtpConstants.FORMAT_EXIF_JPEG, 0);

    for (int objectHandle : objectHandles) {
    //通过handle获取mtpobj,拿到mtpobj后就能通过api进行照片相关信息的获取了               
    MtpObjectInfo mtpobj =            
    mMtpDevice.getObjectInfo(objectHandle);
    }
}

github地址:https://github.com/ynyao/cameraphoto

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值