Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在kivy和pyjnius中使用MediaStore_Android_Python_Kivy_Mediastore_Pyjnius - Fatal编程技术网

Android 在kivy和pyjnius中使用MediaStore

Android 在kivy和pyjnius中使用MediaStore,android,python,kivy,mediastore,pyjnius,Android,Python,Kivy,Mediastore,Pyjnius,我正在尝试使用kivy开发一款android媒体播放器,目前我正忙于在android设备上获取所有音频文件数据,并在循环视图中填充这些数据。我做了一些研究,发现我可以在java MediaStore类的帮助下实现这一点,但我不知道如何去做 我已经试过阅读pyjnius文档,但对于初学者来说还不太详细,因此非常感谢您对我如何实现这一点提供的任何帮助。没有使用MediaStore,但以下是我如何使用pyjnius安装apk文件: from jnius import cast

我正在尝试使用kivy开发一款android媒体播放器,目前我正忙于在android设备上获取所有音频文件数据,并在循环视图中填充这些数据。我做了一些研究,发现我可以在java MediaStore类的帮助下实现这一点,但我不知道如何去做


我已经试过阅读pyjnius文档,但对于初学者来说还不太详细,因此非常感谢您对我如何实现这一点提供的任何帮助。

没有使用
MediaStore
,但以下是我如何使用
pyjnius
安装
apk
文件:

            from jnius import cast
            from jnius import autoclass
            # the download is the app, install it using an Android Intent

            PythonActivity = autoclass('org.kivy.android.PythonActivity') #request the Kivy activity instance
            Intent = autoclass('android.content.Intent') # get the Android Intent class
            Uri = autoclass('android.net.Uri')
            File = autoclass('java.io.File')

            intent = Intent() # create a new Android Intent
            intent.setDataAndType(Uri.fromFile(File(str(self.localUpdateFile))), "application/vnd.android.package-archive")
            intent.setAction(Intent.ACTION_VIEW) #set the action (use ACTION_VIEW for install)
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

            currentActivity = cast('android.app.Activity', PythonActivity.mActivity)
            currentActivity.startActivity(intent) # show the intent in the activity
我希望启动
MediaStore
类似,但不确定如何从中获取信息。

在Android上对我有效
from jnius import autoclass

def get_songs(self):
    PythonActivity = autoclass('org.kivy.android.PythonActivity')
    Cursor = autoclass('android.database.Cursor')
    Uri = autoclass('android.net.Uri')

    contentResolver = PythonActivity.mActivity
    uri = Uri.parse("content://media/external/audio/media/")
    # uri = Uri.parse("content://media/internal/audio/media/")

    cursor = contentResolver.getContentResolver().query(uri, None, None, None, None)

    if cursor is not None and cursor.moveToFirst():
        while cursor.moveToNext():
            title = cursor.getString(cursor.getColumnIndex('MediaStore.Audio.Media.TITLE'))  # retrieve songs title
            # path = cursor.getString(cursor.getColumnIndex('MediaStore.Audio.Media._data'))  # retrieve songs path

            print(title)

    cursor.close()