2

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

我找不到这方面的信息。我在想我可以在清单中放置一个意图过滤器,但找不到好的文档。

4

3 回答 3

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);

这对你的帮助满满

于 2013-09-07T05:39:04.970 回答
0

尝试使用:

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

HTC_RINGTONE_PICKER除了上述之外,一些 HTC 设备还需要。

于 2013-09-07T05:35:18.477 回答
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);
于 2013-09-07T05:26:37.203 回答