首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓RingtoneManager“标题”和“艺术家”信息

安卓RingtoneManager“标题”和“艺术家”信息
EN

Stack Overflow用户
提问于 2014-09-23 03:32:15
回答 1查看 241关注 0票数 0

我设置了铃声,它正常工作,但".MediaColumns.TITLE“和".Media.ARTIST”不起作用。我已经设置了铃声,然后我检查。显示文件名,而不是“标题名”。

我的代码;

代码语言:javascript
复制
public boolean setRingtone(int p, String s) {

    String path = Environment.getExternalStorageDirectory().getPath()
            + "/sdcard/media/audio/ringtones/";
    String filename = s+'.mp3';

    boolean exists = (new File(path)).exists();
    if (!exists) {
        new File(path).mkdirs();
    }

    File k = new File(path, filename);

    ContentValues values = new ContentValues();
    values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
    values.put(MediaStore.MediaColumns.TITLE, "Title Name");
    values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
    values.put(MediaStore.Audio.Media.ARTIST, "Ringtones");
    values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
    values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
    values.put(MediaStore.Audio.Media.IS_ALARM, false);
    values.put(MediaStore.Audio.Media.IS_MUSIC, false);

    Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());

    getContentResolver().delete(uri,MediaStore.MediaColumns.DATA + "=\"" + k.getAbsolutePath() + "\"", null);

    Uri newUri = getContentResolver().insert(uri,values);
    RingtoneManager.setActualDefaultRingtoneUri(SingleListItem.this,RingtoneManager.TYPE_RINGTONE,newUri);

    String desc= "Ringtone has been set";

    Toast.makeText(getApplicationContext(), desc, Toast.LENGTH_LONG).show();
    return true;

}

我有这些权限

代码语言:javascript
复制
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
EN

回答 1

Stack Overflow用户

发布于 2014-09-25 14:55:31

您的插入内容看起来是正确的...我使用了几乎相同的代码,并且它是有效的。它在哪里显示文件名而不是“标题名”?在电话设置中还是当您再次查询数据库中的媒体条目时?如果是在查询时,请确保索引到正确的列以获取字符串:

代码语言:javascript
复制
Uri ringtoneUri = ...however you are getting the URI...
String[] retCol = { MediaStore.MediaColumns.TITLE };
Cursor cur =   context.getContentResolver().query(ringtoneUri,retCol,null,null, null);
if (cur.getCount() > 0) {
    cur.moveToFirst();
    String name = cur.getString(cur.getColumnIndex( MediaStore.MediaColumns.TITLE ));
    //Do something with name...
}
cur.close();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25981802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档