有意使用我的应用程序选择铃声

时间:2013-09-07 05:18:17

标签: android android-intent ringtone

当用户想要在他们的设置中选择铃声时,我希望我的应用程序成为选项之一。

我无法找到相关信息。我以为我可以在清单中放置一个intent过滤器,但是找不到好的文档。

3 个答案:

答案 0 :(得分:0)

试试这段代码 -

Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
mp= MediaPlayer.create(getBaseContext(), alert);
mp.setVolume(100, 100);
mp.start();
mp.setOnCompletionListener(new OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer mp){
mp.release();
}
});

vibrator = (Vibrator) getSystemService (VIBRATOR_SERVICE);
vibrator.vibrate(400);

答案 1 :(得分:0)

尝试使用:

<intent-filter>
    <action android:name="android.intent.action.RINGTONE_PICKER"/>
    <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>

除了上述内容之外,有些HTC设备还需要HTC_RINGTONE_PICKER

答案 2 :(得分:0)

使用此功能收集设备的可用音色

private String[] getMusic() {
                @SuppressWarnings("deprecation")
                final Cursor mCursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                                new String[] { MediaStore.Audio.Media.DISPLAY_NAME }, null,
                                null, "LOWER(" + MediaStore.Audio.Media.TITLE + ") ASC");

                int count = mCursor.getCount();

                String[] songs = new String[count];
                int i = 0;
                if (mCursor.moveToFirst()) {
                        do {
                                songs[i] = mCursor.getString(0);
                                i++;
                        } while (mCursor.moveToNext());
                }

                mCursor.close();

                return songs;
        }

列表视图中显示,并使用以下评论

进行设置
ContentValues content = new ContentValues(); 
                                               content.put(MediaStore.MediaColumns.DATA,ringtoneFile.getAbsolutePath());
content.put(MediaStore.MediaColumns.TITLE, "ownringtone");
content.put(MediaStore.MediaColumns.MIME_TYPE, "audio/*");
content.put(MediaStore.Audio.Media.ARTIST, "name");
content.put(MediaStore.Audio.Media.IS_RINGTONE, true);
content.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
content.put(MediaStore.Audio.Media.IS_ALARM, false);
content.put(MediaStore.Audio.Media.IS_MUSIC, false);
// Insert it into the database
Uri uri = MediaStore.Audio.Media.getContentUriForPath(ringtoneFile.getAbsolutePath());
pathString= ringtoneFile.getAbsolutePath();
Uri newUri = getContentResolver().insert(uri, content);
RingtoneManager.setActualDefaultRingtoneUri(getBaseContext(), RingtoneManager.TYPE_RINGTONE,newUri);

这个帮助对你来说很充实