kivy调用java_kivy上的javaandroid文件选择器。Python

我试图在android文件选择器上选择多个文件,但它没有返回任何文件。我想是第29行的错误。如果您需要uri,代码可以工作,但是我需要kivy图像小部件或soundloader的文件路径。任何帮助都会很感激,因为我愿意学习。谢谢您!在def select_media(self, callback, mood):

type0 = ''

if 'image' in mood: type0 = "image/*"

if 'audio' in mood: type0 = "audio/*"

if 'vid' in mood: type0 = "video/*"

currentActivity = cast('android.app.Activity', PythonActivity.mActivity)

def on_activity_result(request_code, result_code, intent):

if request_code != RESULT_LOAD_IMAGE:

Logger.warning('select_media: ignoring activity result that was not RESULT_LOAD_IMAGE')

return

if result_code == Activity.RESULT_CANCELED:

Clock.schedule_once(lambda dt: callback(None), 0)

return

if result_code != Activity.RESULT_OK:

raise NotImplementedError('Unknown result_code "{}"'.format(result_code))

self.multi_imgs = []

mClipData = intent.getClipData();

list0 = [];

for i in range(0, mClipData.getItemCount()):

item = mClipData.getItemAt(i);

uri = item.getUri();

list0.append(uri);

filePathColumn = [MediaStore_Images_Media_DATA];

cursor = currentActivity.getContentResolver().query(uri,

filePathColumn, None, None, None);

cursor.moveToFirst();

columnIndex = cursor.getColumnIndex(filePathColumn[0]);

itemPath = cursor.getString(columnIndex);

self.multi_imgs.append(itemPath);

cursor.close();

Clock.schedule_once(lambda dt: callback(itemPath), 0)

self.selected_images = self.multi_imgs

activity.bind(on_activity_result=on_activity_result)

intent = Intent()

intent.setAction(Intent.ACTION_GET_CONTENT)

# intent.setData(Uri.parse('content://media/internal/images/media'))

intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, True)

intent.setType(type0)

currentActivity.startActivityForResult(intent, RESULT_LOAD_IMAGE)

# chooser = Intent.createChooser(intent,String("Select Picture"))

# currentActivity.startActivityForResult(chooser, RESULT_LOAD_IMAGE)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值