当用户想要在他们的设置中选择铃声时,我希望我的应用程序成为选项之一。
我找不到这方面的信息。我在想我可以在清单中放置一个意图过滤器,但找不到好的文档。
当用户想要在他们的设置中选择铃声时,我希望我的应用程序成为选项之一。
我找不到这方面的信息。我在想我可以在清单中放置一个意图过滤器,但找不到好的文档。
使用它从您的设备收集可用的音调
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);
这对你的帮助满满
尝试使用:
<intent-filter>
<action android:name="android.intent.action.RINGTONE_PICKER"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
HTC_RINGTONE_PICKER
除了上述之外,一些 HTC 设备还需要。
试试这个代码 -
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);