手机设置sd为铃声...

来源:互联网 发布:郑州知豆电动汽车4s店 编辑:程序博客网 时间:2024/04/28 19:45

 权限:

   <uses-permission android:name="android.permission.INTERNET"/> 
   <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 
   <uses-permission android:name="android.permission.WRITE_SETTINGS"/>

 

 

//定义三个按钮 
    private Button mRingtongButton; 
    private Button mAlarmButton; 
    private Button mNotificationButton; 
     
    //定义类型 
    private static final int RingtongButton=0; 
    private static final int AlarmButton=1; 
    private static final int NotificationButton=2; 
     

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
        mRingtongButton=(Button)findViewById(R.id.myRingtongButton); 
        mRingtongButton.setOnClickListener(new myRingtongButtonListener()); 
        mAlarmButton=(Button)findViewById(R.id.myAlarmButton); 
        mAlarmButton.setOnClickListener(new myAlarmButtonListener()); 
        mNotificationButton=(Button)findViewById(R.id.myNotificationButton); 
        mNotificationButton.setOnClickListener(new myNotificationButtonListener()); 
    } 
     
    //设置来电铃声监听器 
    private class myRingtongButtonListener implements OnClickListener{ 
        @Override 
        public void onClick(View v) {  
                //打开系统铃声设置 
                Intent intent=new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); 
                intent.putExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI, true); 
                //类型为来电ringtong 
                intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_RINGTONE); 
                //设置显示的题目 
                intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "设置来电的铃声"); 
                //当设置完成之后返回到当前的activity 
                startActivityForResult(intent, RingtongButton); 
        } 
    } 
     
    //设置闹钟铃声监听器 
    private class myAlarmButtonListener implements OnClickListener{ 
        @Override 
        public void onClick(View v) { 
                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, AlarmButton); 
        } 
     } 
     
    //设置通知铃声监听器 
    private class myNotificationButtonListener implements OnClickListener{ 
        @Override 
        public void onClick(View v) { 
                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, NotificationButton); 
        } 
    } 
    //检查是否存在指定的文件夹,如果不存在就创建 
    private boolean isFolder(String strFolder){ 
        boolean tmp = false; 
        File f1 = new File(strFolder); 
        if (!f1.exists()) 
        { 
            if (f1.mkdirs()) 
            { 
                tmp = true; 
            } 
            else 
            { 
                tmp = false; 
            } 
        } 
        else 
        { 
            tmp = true; 
        } 
        return tmp; 
    } 
//设置铃声之后的回调函数 
    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
        if(resultCode!=RESULT_OK){ 
            return; 
        } 
        switch(requestCode){ 
            case RingtongButton: 
                try { 
                     //得到我们选择的铃声 
                     Uri pickedUri=data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); 
                     //将我们选择的铃声选择成默认 
                     if(pickedUri!=null){ 
                         RingtoneManager.setActualDefaultRingtoneUri(MainActivity.this, RingtoneManager.TYPE_RINGTONE, pickedUri); 
                     } 
                } catch (Exception e) { 
                    e.printStackTrace(); 
                } 
                 break; 
            case AlarmButton: 
                try { 
                     //得到我们选择的铃声 
                     Uri pickedUri=data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); 
                     //将我们选择的铃声选择成默认 
                     if(pickedUri!=null){ 
                         RingtoneManager.setActualDefaultRingtoneUri(MainActivity.this, RingtoneManager.TYPE_ALARM, pickedUri); 
                     } 
                } catch (Exception e) { 
                    e.printStackTrace(); 
                } 
                break; 
            case NotificationButton: 
                try { 
                     //得到我们选择的铃声 
                  Uri pickedUri=data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); 
                     //将我们选择的铃声选择成默认 
                     if(pickedUri!=null){ 
                         RingtoneManager.setActualDefaultRingtoneUri(MainActivity.this, RingtoneManager.TYPE_NOTIFICATION, pickedUri); 
                     } 
                } catch (Exception e) { 
                    e.printStackTrace(); 
                } 
                break; 
        } 
        super.onActivityResult(requestCode, resultCode, data); 
    } 

 

 

第二种方法:

ContentResolver resolver = this.getContentResolver();
  
   Cursor cursor =
   resolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null,
   null, null, null);
   if(cursor.moveToPosition(3)) {
   String path2 =
   cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
   Log.d("liuyanfeng", "--date---"+path2);
   int id =
     cursor.getInt(cursor.getColumnIndex(MediaStore.Audio.Media._ID));
     Log.d("liuyanfeng", "---id--"+id);
   ContentValues cv = new ContentValues();
   cv.put(MediaStore.Audio.Media.IS_RINGTONE, true);
         cv.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
         cv.put(MediaStore.Audio.Media.IS_ALARM, false); 
   cv.put(MediaStore.Audio.Media.IS_MUSIC, false);
   Uri uri = MediaStore.Audio.Media.getContentUriForPath(path2);
   getContentResolver().update(uri, cv, MediaStore.MediaColumns.DATA + "=?",new String[] {path2});
   Uri newUri = ContentUris.withAppendedId(uri, Long.valueOf(id));
         RingtoneManager.setActualDefaultRingtoneUri(MainActivity.this,
     RingtoneManager.TYPE_RINGTONE, newUri);
   

 

 

 

0 0
原创粉丝点击