zoukankan      html  css  js  c++  java
  • Android RingtoneManager铃声管理

    package com.Aina.Android;
    
    import java.io.File;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.media.RingtoneManager;
    import android.net.Uri;
    import android.os.Bundle;
    import android.os.Environment;
    import android.view.View;
    import android.widget.Button;
    
    public class Test extends Activity {
    	/** Called when the activity is first created. */
    	private Button btn1 = null;
    	private Button btn2 = null;
    	private Button btn3 = null;
    	private static final int Ringtone = 0;
    	private static final int Alarm = 1;
    	private static final int Notification = 2;
    	private static final String FileRingtone = Environment
    			.getExternalStorageDirectory()
    			+ "/music/ringtones";
    	private static final String FileAlarm = Environment
    			.getExternalStorageDirectory()
    			+ "/music/alarms";
    	private static final String FileNotification = Environment
    			.getExternalStorageDirectory()
    			+ "/music/notifications";
    
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    		btn1 = (Button) this.findViewById(R.id.Button01);
    		btn2 = (Button) this.findViewById(R.id.Button02);
    		btn3 = (Button) this.findViewById(R.id.Button03);
    		btn1.setOnClickListener(new Button.OnClickListener() {
    
    			public void onClick(View arg0) {
    				// TODO Auto-generated method stub
    				if (isFile(FileRingtone)) {
    					// 打开系统铃声设置
    					Intent intent = new Intent(
    							RingtoneManager.ACTION_RINGTONE_PICKER);
    					// 设置类型为来电
    					intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
    							RingtoneManager.TYPE_RINGTONE);
    					// 设置显示的标题
    					intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE,
    							"设置来电铃声");
    					startActivityForResult(intent, Ringtone);
    				}
    			}
    
    		});
    		btn2.setOnClickListener(new Button.OnClickListener() {
    
    			public void onClick(View v) {
    				// TODO Auto-generated method stub
    				if (isFile(FileAlarm)) {
    					Intent intent = new Intent(
    							RingtoneManager.ACTION_RINGTONE_PICKER);
    					intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
    							RingtoneManager.TYPE_ALARM);
    					intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE,
    							"设置闹钟铃声");
    					startActivityForResult(intent, Alarm);
    				}
    			}
    
    		});
    		btn3.setOnClickListener(new Button.OnClickListener() {
    
    			public void onClick(View v) {
    				// TODO Auto-generated method stub
    				if (isFile(FileNotification)) {
    					Intent intent = new Intent(
    							RingtoneManager.ACTION_RINGTONE_PICKER);
    					intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
    							RingtoneManager.TYPE_NOTIFICATION);
    					intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE,
    							"设置通知铃声");
    					startActivityForResult(intent, Notification);
    				}
    
    			}
    
    		});
    	}
    
    	/**
    	 * 设置铃声之后的回调函数
    	 */
    	@Override
    	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    		super.onActivityResult(requestCode, resultCode, data);
    		if (resultCode != RESULT_OK) {
    			return;
    		} else {
    			// 得到我们选择的铃声
    			Uri uri = data
    					.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
    			if (uri != null) {
    				switch (requestCode) {
    				case Ringtone:
    					RingtoneManager.setActualDefaultRingtoneUri(this,
    							RingtoneManager.TYPE_RINGTONE, uri);
    					break;
    				case Alarm:
    					RingtoneManager.setActualDefaultRingtoneUri(this,
    							RingtoneManager.TYPE_ALARM, uri);
    					break;
    				case Notification:
    					RingtoneManager.setActualDefaultRingtoneUri(this,
    							RingtoneManager.TYPE_NOTIFICATION, uri);
    					break;
    				default:
    					break;
    				}
    			}
    
    		}
    	}
    
    	/**
    	 * 判断文件是否存在,不存在则创建.
    	 * 
    	 * @param path
    	 * @return
    	 */
    	private boolean isFile(String path) {
    		boolean b = false;
    		File f = new File(path);
    		if (f.exists()) {
    			b = true;
    		} else {
    			if (f.mkdirs()) {
    				b = true;
    			} else {
    				b = false;
    			}
    		}
    		return b;
    	}
    }
    
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    	android:orientation="vertical" android:layout_width="fill_parent"
    	android:layout_height="fill_parent">
    	<TextView android:layout_width="fill_parent"
    		android:layout_height="wrap_content" android:text="@string/hello" />
    	<Button android:text="设置来电铃声" android:id="@+id/Button01"
    		android:layout_width="fill_parent"
    		android:layout_height="wrap_content">
    	</Button>
    	<Button android:text="设置闹钟铃声" android:id="@+id/Button02"
    		android:layout_width="fill_parent"
    		android:layout_height="wrap_content">
    	</Button>
    	<Button android:text="设置通知铃声" android:id="@+id/Button03"
    		android:layout_width="fill_parent"
    		android:layout_height="wrap_content">
    	</Button>
    </LinearLayout>
    
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.Aina.Android"
          android:versionCode="1"
          android:versionName="1.0">
        <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".Test"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    
        </application>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    
    </manifest> 
    

  • 相关阅读:
    u-boot mkconfig文件分析
    uboot的lds文件分析
    gitlab webhook jenkins 403问题解决方案
    【python】将json串写入文件,并以json格式读取出来
    sqlalchemy 中 desc 的使用
    【mysql】如何通过navicat配置表与表的多对一关系,一对一关系?设计外键的效果
    【mysql】一对一关系的理解,以及Navicat Premium怎么设置字段的唯一性(UNIQUE)?
    【mysql】时间类型-如何根据不同的应用场景,选择合适的时间类型?
    Navicat Premium Mac 12 破解方法-亲测成功
    【linux】cp 批量复制文件
  • 原文地址:https://www.cnblogs.com/error404/p/2127233.html
Copyright © 2011-2022 走看看