android java 怎么更换默认铃声,Android如何通过长按按钮将声音设置为铃声
如何长按按钮将声音设置为铃声?
目前它只适用于sound4但不适用于sound5
包com.test.soundboard;
import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import android.view.ContextMenu.ContextMenuInfo;
import android.widget.Button;
import android.widget.Toast; import android.app.Activity; import android.content.ContentValues; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.view.ContextMenu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener;
公共类SoundBoardTest扩展Activity实现OnClickListener {
private SoundManager mSoundManager;
@Override public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);的setContentView(R.layout.main);
mSoundManager = new SoundManager();
mSoundManager.initSounds(getBaseContext());
mSoundManager.addSound(1, R.raw.sound4);
mSoundManager.addSound(2, R.raw.sound5);
//按下时按钮播放声音
View SoundButton4 = findViewById(R.id.SoundButton4);
SoundButton4.setOnClickListener(this);
View SoundButton5 = findViewById(R.id.SoundButton5);
SoundButton5.setOnClickListener(this);
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.SoundButton4:
mSoundManager.playSound(1);
break;
case R.id.SoundButton5:
mSoundManager.playSound(2);
break;
}
//当长按按钮带上下文菜单以保存为铃声或通知
Button SoundButton4 = (Button) findViewById(R.id.SoundButton4);
registerForContextMenu(SoundButton4);
Button SoundButton5 = (Button) findViewById(R.id.SoundButton5);
registerForContextMenu(SoundButton5);
}
//按钮的上下文菜单1 @Override
public void onCreateContextMenu(ContextMenu菜单,View v,ContextMenuInfo menuInfo){
super.onCreateContextMenu(menu,v,menuInfo);
menu.setHeaderTitle("Save as...");
menu.add(0,v.getId(),0,"Ringtone");
menu.add(0,v.getId(),0,"Notification");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
if(item.getTitle()=="Ringtone"){function1(item.getItemId());}
else if(item.getTitle()=="Notification"){function2(item.getItemId());}
else {return false;}
return true;
}
public void function1(int id){
if (savering(R.raw.sound4)){
// Code if successful
Toast.makeText(this, "Saved as Ringtone", Toast.LENGTH_SHORT).show();
}
else
{
// Code if unsuccessful
Toast.makeText(this, "Failed - Check your SDCard", Toast.LENGTH_SHORT).show();
}
}
public void function2(int id){
if (savering(R.raw.sound4)){
// Code if successful
Toast.makeText(this, "Saved as Notification", Toast.LENGTH_SHORT).show();
}
else
{
// Code if unsuccessful
Toast.makeText(this, "Failed - Check your SDCard", Toast.LENGTH_SHORT).show();
}
}
public boolean savering(int ressound){
byte [] buffer = null;
InputStream fIn = getBaseContext() . getResources() . openRawResource(ressound);
int size = 0;
try {
size = fIn.available();
buffer = new byte[size];
fIn.read(buffer);
fIn.close();
} catch (IOException e) {
// TODO Auto-generated catch block
return false;
}
String path="/sdcard/media/audio/ringtones/";
String filename="soundtest4"+".ogg";
boolean exists = (new File(path)).exists();
if (!exists){new File(path).mkdirs();}
FileOutputStream save;
try {
save = new FileOutputStream(path+filename);
save.write(buffer);
save.flush();
save.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
return false;
} catch (IOException e) {
// TODO Auto-generated catch block
return false;
}
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://"+path+filename)));
File k = new File(path, filename);
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, "HahaSound");
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/ogg");
values.put(MediaStore.Audio.Media.ARTIST, "cssounds ");
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
values.put(MediaStore.Audio.Media.IS_ALARM, true);
values.put(MediaStore.Audio.Media.IS_MUSIC, false);
//Insert it into the database
this.getContentResolver().insert(MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath()), values);
return true;
}
}
android java 怎么更换默认铃声,Android如何通过长按按钮将声音设置为铃声相关推荐
- android Java开发设计模式及在android中的应用解析
android Java开发设计模式及在android中的应用解析 什么是设计模式: 可以用一句话概括设计模式---设计模式是一种利用OOP的封闭.继承和多态三大特性,同时在遵循单一职责原则.开闭原则 ...
- android百度地图更换定位图标,android百度地图定位,改变MyLocationOverlay默认图标(原始为蓝色点)(两种方法)...
开放地图API无外乎google ,百度,高德等.其它的还有很多,不过比较好用的就这三种了,如果不需要出国(台湾例外),则最好使用百度地图,性能比高德好的多,无聊的时候自己可以测试测试.. 下面我简单 ...
- android java 数组转字符串_java – Android将字符串转换为数组字符串
将其作为JSON处理.两个直接的好处是它会自动处理数据中的任何嵌入式逗号,另一个是你将获得带有不带引号的字符串的String []. String input = "[\"477\ ...
- java除了android,Java中是否有类似android中的android.os.Handler的类?
没有一个默认.但是你可以让自己的自定义类来做类似的事情. 我做了一个这样的: import java.util.ArrayList; public class Handler extends Obje ...
- android java 调试工具_调试应用 | Android 开发者 | Android Developers
Auto 如果您希望 Android Studio 自动为您要调试的代码选择最合适的选项,请选择此调试类型.例如,如果您的项目包含任何 C 或 C++ 代码,Android Studio 会自动使用 ...
- android连接usb后默认app,android – 记住USB连接,但不要启动应用程序
我正在处理的应用程序通过USB连接成功连接设备. 但是,这会在连接USB设备时始终启动活动时产生不良影响.没有启动应用程序,我无法记住默认值.在连接上启动应用程序不是一个理想的效果.下面的小代码示例是 ...
- android java代码重启,如何在Android中重启服务?
has anyone know how to restarting a service in android?? i have a service that called when device is ...
- android java 静态库_android的android.mk,和application.mk文件编写
android的android.mk,和application.mk文件编写 1.简介 android.mk是用来描述要编译某个具体的模块,所需要的一些资源,包括要编译的源码.要链接的库等等 appl ...
- android java 延时函数,如何在Android中设置文本之间的延迟
由于不能在UI线程上调用Thread.sleep(只显示最终结果),因此应该在另一个线程上执行此操作,例如: 在构造函数上: private Handler handler; public void ...
最新文章
- pg数据库生成随机时间_postgresql 时区与时间函数-阿里云开发者社区
- 设计师之歌 --【死了都要改】
- WildFly 报错 java.lang.NoClassDefFoundError
- 淘淘商城 @Autowired 装配失败
- Direct3D 开发之旅 3D 游戏基本概念的介绍2
- Android之解决开启热点后跳转页面不稳定问题
- P1912-[NOI2009]诗人小G【四边形不等式,单调队列】
- oracle之基本的过滤和排序数据之课后练习
- 【Matplotlib】【Python】如何使用matplotlib绘制各种图形
- Laravel使用EasyWechat 进行微信支付
- Java教程:Java JDK下载与安装教程
- java 获取文件扩展名_如何在Java中获取文件扩展名
- 一页纸商业计划书 (Business Plan) 模板(转载)
- C语言编写函数求字符串长度的几种实现方法
- win10上U盘插到电脑上无法显示盘符也打不开怎么办
- python——爬虫豆瓣250
- 分布式调度框架大集合
- vue 前端仿QQ截图实现Web端自定义截屏(JS版)
- [No00005F]读书与心智
- 【黄啊码】为什么我建议您选择go,而不选择php?
热门文章
- 彩色瓷砖(python)
- Win7 DCOM 配置中我的电脑出现红色箭头并且无属性显示的解决方法
- OleDbCommand 的特点
- html怎么弄br文字首行缩进,每段首行缩进2个字符如何设置CSS
- adb shell读取返回值_android代码执行adb shell终端命令(linux命令)并返回执行结果...
- BUS MASTER v3.2.2下载地址
- 唐代诗歌作品中常见的名言名句
- 6-1 计算两数的和与差 (10 分)
- 短视频去水印方法之-opencv进行批量图像修复
- C语言实现strcpy