如何使用RingtoneManager.ACTION_RINGTONE_PICKER设置铃声?

我尝试在这里find解决scheme,但只有解决scheme为自己的/选定的文件,而不是代码时,我打电话select器。 用户按下button时使用以下代码:

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select ringtone for notifications:"); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_NOTIFICATION); ActivityCurrent.this.startActivityForResult(intent,999); 

这个显示铃声select器,用户可以select什么铃声想要的,但我想念两件事情: – 它不显示当前的铃声,当它打开时,它不保存铃声时,点击OK


我仍然无法find如何打开RINGTONE_PICKER与已经选定的当前铃声。 任何想法?

 Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select ringtone for notifications:"); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_NOTIFICATION); ActivityCurrent.this.startActivityForResult(intent,999); 

  • select器inheritance
  • ListView项目阴影+自定义select器
  • android:自定义的文本select器
  • Android上的“按住”button需要使用onTouchListener更改状态(自定义XMLselect器)
  • android倒数计时器的小时/分钟select器
  • 禁用Android GridView完全高亮显示(禁用select)
  • 自定义单选列表视图
  • 在Android的DatePickerDialog设置限制?
  • 你必须实现onActivityResult()来接收用户select的结果,然后保存它。

     if (resultCode == RESULT_OK) { Uri uri = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); if (uri != null) { String ringTonePath = uri.toString(); } 

    这里是一个例子: http : //www.ceveni.com/2009/07/ringtone-picker-in-android-with-intent.html

    编辑:更新

     RingtoneManager.setActualDefaultRingtoneUri( myActivity, RingtoneManager.TYPE_RINGTONE, uri); 

    你必须调用这个:)

     Intent intent=new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, ringtone); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, ringtone); startActivityForResult(intent , 1); 

    “铃声”是我在其中保存onActivityResult()select的音调的uri。

     @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { switch (requestCode) { case 1: ringtone = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); // Toast.makeText(getBaseContext(),RingtoneManager.URI_COLUMN_INDEX, // Toast.LENGTH_SHORT).show(); break; default: break; } } } 

    希望它可以帮助你。 命中如果答案。

    此代码将显示用户在使用铃声select器时较早设置的默认铃声。

    在铃声意图的button中使用下面的代码。

     public void pickRingtone(View view) { // TODO Auto-generated method. stub Intent intent = new. Intent(RingtoneManager.ACTION_RINGTONE_PICKER); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_RINGTONE); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Ringtone"); // for existing ringtone Uri urie = RingtoneManager.getActualDefaultRingtoneUri( getApplicationContext(), RingtoneManager.TYPE_RINGTONE); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, urie); startActivityForResult(intent, 5); } 

    代码是完美的,为我工作。 但你忘了提及所需的权限..在这里。 试试这个代码..希望它有帮助

     <uses-permission android:name="android.permission.WRITE_SETTINGS" ></uses-permission> <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" ></uses-permission> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" ></uses-permission>