Android设置来电铃声和分享操作

        之前项目里写的设置来电铃声和分享音频文件如下:

//设置来电铃声
    public void setAsRingTone(String path) {
        Log.d(TAG, "setAsRingTone--path:" + path);
        File file = new File(path);
        if (file.exists()) {
            Uri newUri = null;
            ContentValues values = new ContentValues();
            values.put(MediaStore.MediaColumns.DATA, file.getAbsolutePath());
            values.put(MediaStore.MediaColumns.TITLE, file.getName());
            values.put(MediaStore.Audio.Media.IS_RINGTONE, false);
            values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
            values.put(MediaStore.Audio.Media.IS_ALARM, false);
            values.put(MediaStore.Audio.Media.IS_MUSIC, false);
            Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
            //查询媒体数据库中存不存在对应文件路径的数据
            Cursor cursor = this.getContentResolver().query(uri, null,
                    MediaStore.MediaColumns.DATA + "=?",
                    new String[] {
                        file.getAbsolutePath()
                    }, null);
            try {
                //如果存在则跟新媒体数据库,否则插入媒体数据库
                if (cursor.moveToFirst() && cursor.getCount() > 0) {
                    String _id = cursor.getString(0);
                    getContentResolver().update(uri, values, MediaStore.MediaColumns.DATA + "=?",
                            new String[] {
                                file.getAbsolutePath()
                            });
                    newUri = ContentUris.withAppendedId(uri, Long.valueOf(_id));
                } else {
                    newUri = this.getContentResolver().insert(uri, values);
                }
                Log.i(TAG, "newUri=" + newUri);
                RingtoneManager.setActualDefaultRingtoneUri(this,
                        RingtoneManager.TYPE_RINGTONE, newUri);
                Toast.makeText( getApplicationContext (),"铃声设置成功!",
                        Toast.LENGTH_SHORT ).show(); 
            } catch (Exception e) {
                // TODO: handle exception
                Log.e(TAG, "Exception:" + e.toString());
            } finally {
                if (cursor != null) {
                    cursor.close();
                }
            }
        } else {
            Toast.makeText( getApplicationContext (),"文件不存在,铃声设置失败!",
                    Toast.LENGTH_SHORT ).show(); 
        }
    }
    
    //分享音频文件
    public void share(String path) {
        Log.d(TAG, "Share--path:" + path);
        File file = new File(path);
        if (file.exists()) {
            Intent intent = new Intent(Intent.ACTION_SEND);
            intent.setType("audio/*");
            Uri uri = Uri.parse("file://" + path);
            intent.putExtra(Intent.EXTRA_STREAM, uri);
            startActivity(Intent.createChooser(intent, "分享"));
        } else {
            Toast.makeText( getApplicationContext (),"文件不存在,分享失败!",
                    Toast.LENGTH_SHORT ).show(); 
        }
    }
         当然,分享类型还有很多如:分享文字、图片等等,这里推荐一篇文章写的很详细了:

http://blog.csdn.net/xyz_lmn/article/details/16856843

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值