android - 安卓6.0,获取手机的音乐文件(华为荣耀 7)?
伊谢尔伦
伊谢尔伦 2017-04-18 09:19:16
0
2
880
    ContentResolver musicResolver = getContentResolver();
    Uri musicUri = android.provider.MediaStore.Audio.Media.INTERNAL_CONTENT_URI;
    Cursor musicCursor = musicResolver.query(musicUri, null, null, null, null);

为什么我使用以上的代码获取不到我手机里面的音乐? 调试发现 musicResolver.query() 是这个函数有问题,然后进入这个函数后,发现内部的变量 cursor 为 null ,没有找到本地的音乐文件?那要用什么方法得到本地的音乐文件信息?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

répondre à tous(2)
PHPzhong

C'est peut-être un problème avec mon téléphone. Aujourd'hui, j'ai utilisé le code de mon camarade de classe et j'ai pu avoir la musique sur son téléphone. Ensuite, j'ai téléchargé le code sur mon 荣耀7 mais cela n'a pas fonctionné. sur le téléphone portable d'un autre camarade de classe 荣耀8, le résultat ne fonctionnait pas non plus. Effectivement, c'était un problème avec le téléphone portable, pas le code. Ensuite, j'ai recherché des articles connexes et je l'ai finalement trouvé :

.
// Storage Permissions
    private static final int REQUEST_EXTERNAL_STORAGE = 1;
    private static String[] PERMISSIONS_STORAGE = {
            Manifest.permission.READ_EXTERNAL_STORAGE,
            Manifest.permission.WRITE_EXTERNAL_STORAGE
    };
public static void verifyStoragePermissions(Activity activity) {
        // Check if we have write permission
        int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);

        if (permission != PackageManager.PERMISSION_GRANTED) {
            // We don't have permission so prompt the user
            ActivityCompat.requestPermissions(
                    activity,
                    PERMISSIONS_STORAGE,
                    REQUEST_EXTERNAL_STORAGE
            );
        }
    }

Mettez le code ci-dessus dans la classe dans laquelle vous souhaitez rechercher des fichiers musicaux. Lorsque vous recherchez enfin de la musique, appelez simplement la méthode ci-dessus. Ce qui précède signifie vérifier s'il existe des autorisations correspondantes. S'il n'y a pas d'autorisations correspondantes, augmentez les autorisations (il s'agit en effet d'un problème d'autorisation, mais je ne m'attendais pas à ce que les autres téléphones puissent fonctionner normalement. Les deux téléphones Honor actuels ne peuvent pas fonctionner. C'est un piège et une perte. J'ai tellement de temps,,,)

Enfin, mettez le code suivant dans manifest.


    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Pour l'instant, ça devrait aller. Sinon, vous pouvez m'envoyer un message privé.

巴扎黑

Essayez d'utiliser MediaStore.Audio.Media directement EXTERNAL_CONTENT_URI

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal