我正在尝试根据所选列表视图项的位置将所选声音另存为铃声/通知声音,但是在为此找到相关教程(如果有)时遇到严重问题.到目前为止,下面是我的代码,但是我想以最简单的方式实现此目的/为了减少代码量,因此为了简单起见,我使用了1个上下文菜单.理想地
public voID function1(int ID){ }
这是用于设置铃声的代码所在的位置,
public voID function2(int ID){ }
是用于设置通知声音的代码.
例如. (在设置铃声时尝试达到此目的)单击&按住“ chimes”列表项>上下文菜单出现>选择“设置为铃声”上下文菜单项> >出现“电话铃声”窗口(带有“铃声”作为可用选项之一).用户单击确定或取消>如果用户单击“确定”,请返回到我的应用程序并显示吐司通知(“铃声已保存”);或者,如果用户单击“取消”,请返回我的应用程序并显示吐司通知(“铃声未保存”).
所有帮助将不胜感激.
import androID.media.MediaPlayer;import androID.os.Bundle;import androID.support.v7.app.ActionBaractivity;import androID.vIEw.ContextMenu;import androID.vIEw.MenuItem;import androID.vIEw.VIEw;import androID.Widget.AdapterVIEw;import androID.Widget.ArrayAdapter;import androID.Widget.ListVIEw;public class MainActivity extends ActionBaractivity { private ListVIEw mainList; private MediaPlayer mp; private final String[] ListContent = { "chimes", "chord", "ding", "notify", "recycle", "ringin", "ring out","tada" }; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); mp = new MediaPlayer(); mainList = (ListVIEw) findVIEwByID(R.ID.main_ListVIEw); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, androID.R.layout.simple_List_item_1, ListContent); mainList.setAdapter(adapter); registerForContextMenu(this.mainList); } @OverrIDe public voID onCreateContextMenu(ContextMenu menu, VIEw v,ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); menu.add(0, v.getID(), 0, "Action 1"); menu.add(0, v.getID(), 0, "Action 2"); } @OverrIDe public boolean onContextItemSelected(MenuItem item) { if (item.getTitle().equals("Action 1")){ function1(item.getItemID()); } else if (item.getTitle().equals("Action 2")){ function2(item.getItemID()); } else { return false; } return true; } public voID function1(int ID){ } public voID function2(int ID){ }}
解决方法:
为了设置铃声或通知声音,请使用RingToneManager.
具体来说,您使用
ringtoneManager.setActualDefaultringtoneUri(getApplicationContext(), ringtoneManager.TYPE_ringtone, newUri);
用于设置默认铃声.然后你用
ringtoneManager.setActualDefaultringtoneUri(getApplicationContext(), ringtoneManager.TYPE_NOTIFICATION, newUri);
用于设置默认通知声音.
这需要一个URI(统一资源标识符),它不是一个整数或ItemID,就像您的函数当前使用的那样.
从示例代码中,可以采取一些可能的选择.
第一种是将铃声标题作为字符串而不是ID传递给函数,然后调用ringtoneManager.getCursor()以获得所有可能的铃声列表,并检查每个铃声以查看标题匹配,如果匹配,则为匹配的标题设置URI.
第二种是基于所有可用铃声的光标和ID中的传递来列出选项,并使用ringtoneManager.getringtoneUri(ID)获取URI.一种执行此 *** 作的方法在Using SimpleCursorAdapter to Display Ringtones from RingtoneManager in Android Using ListView Templates中有详细说明
第三是使用ACTION_ringtone_PICKER,它具有相关的StackOverflow Question.
总结以上是内存溢出为你收集整理的java-根据所选列表视图项的位置设置铃声全部内容,希望文章能够帮你解决java-根据所选列表视图项的位置设置铃声所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)