3

如何以编程方式在android中获取电话铃声类型名称。我只能获取铃声id(://media/internal/audio/media/53)。如何获取铃声name(panic)而不是id(53)。请帮助我。

我使用以下代码来获取铃声名称:

Uri mUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); 
Cursor mCursor = query(mUri, null, null,null, null); 
mCursor.moveToFirst(); 
String ringtoneName= Cursor.getString(mCursor.getColumnIndex("title")); 
Toast.makeText(getApplicationContext(), "Ringtone"+ringtoneName+"", Toast.LENGTH_SHORT).show(); 

但它显示空指针异常

4

3 回答 3

4

我使用以下代码得到了解决方案:

在 onActivityResult 里面:

Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
Ringtone r=RingtoneManager.getRingtone(this, uri); 
String ringToneName=r.getTitle(this));
Toast.makeText(getApplicationContext(), "Ringtone Name : +ringtonename+"",Toast.LENGTH_SHORT).show();

但它会在模拟器中显示异常,因为模拟器中没有铃声所以在手机中执行这个

于 2012-08-29T08:40:17.107 回答
2

沿着这些思路尝试一些东西。标题应该给你媒体的标题

Uri mUri = Uri.parse("content://media/internal/audio/media/53"); 

Cursor mCursor = query(mUri, null, null,null, null);
mCursor.movetoFirst();
//use below ringtoneName to get the title of the ringtone
String ringtoneName= mCursor.getString(mCursor.getColumnIndex("title"));
于 2012-08-24T11:10:20.473 回答
2

快速方法:

Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
String songTitle = RingtoneManager.getRingtone(this, uri).getTitle(this);
于 2013-10-16T10:29:53.850 回答