如何在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();
但它显示空指针异常
答案 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);