如何以编程方式获取手机铃声类型名称而不是获取铃声ID

时间:2012-08-24 10:44:54

标签: android ringtone

如何在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(); 

但它显示空指针异常

3 个答案:

答案 0 :(得分: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();

但是它会在模拟器中显示异常,因为模拟器中没有铃声,所以在移动设备中执行此操作

答案 1 :(得分: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"));

答案 2 :(得分:2)

快速方式:

Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
String songTitle = RingtoneManager.getRingtone(this, uri).getTitle(this);