国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android給app設置自定義鈴聲功能

2019-10-23 19:49:52
字體:
供稿:網(wǎng)友

因為有個需求是在自己的app中添加鈴聲并播放,而之前在網(wǎng)上查閱了相關的資料卻大多都是教人怎么設置手機來電、鬧鐘等手機系統(tǒng)的功能,所以就以此文章作為記錄。

一、本篇文章的大致內(nèi)容是

1.調(diào)用系統(tǒng)鈴聲界面選擇鈴聲;

2.播放該選擇的鈴聲;

3.再次調(diào)用系統(tǒng)鈴聲界面時,默認勾選之前已經(jīng)選擇過的鈴聲;

4.非常重要的權(quán)限要加上;

二、圖示

Android設置鈴聲,Android給app設置自定義鈴聲,Android設置自定義鈴聲

界面代碼很簡單,顧名思義。

三、部分邏輯代碼實現(xiàn)

①調(diào)用系統(tǒng)鈴聲界面?zhèn)鬟f當前鈴聲數(shù)據(jù),并選擇新的鈴聲

//選擇鈴聲  public void toChoose(View view) {   Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);   intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION);   intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "設置通知鈴聲");   if (myUriStr != null) {    <span style="color:#3366ff;">intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, Uri.parse(myUriStr));</span>//將已經(jīng)勾選過的鈴聲傳遞給系統(tǒng)鈴聲界面進行顯示   }   startActivityForResult(intent, 0);  }    @Override  protected void onActivityResult(int requestCode, int resultCode, Intent data) {   try {    <span style="color:#3366ff;">Uri pickedUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);</span>//獲取用戶選擇的鈴聲數(shù)據(jù)    myUriStr = pickedUri.toString();    } catch (Exception e) {    e.printStackTrace();   }  } 

②播放當前選擇的鈴聲

//播放鈴聲  public void toPlay(View view) {   if (myUriStr == null) {//如果未自定義鈴聲,則調(diào)用系統(tǒng)默認的鈴聲    mMediaPlayer = MediaPlayer.create(this, getSystemDefaultRingtoneUri());   } else {    mMediaPlayer = MediaPlayer.create(this, Uri.parse(myUriStr));     if(mMediaPlayer == null){     Toast.makeText(this,"該鈴聲不存在,請重新選擇",Toast.LENGTH_LONG).show();     return;    }   }   mMediaPlayer.setLooping(false);   try {    mMediaPlayer.prepare();   } catch (IllegalStateException e) {    e.printStackTrace();   } catch (IOException e) {    e.printStackTrace();   }    mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {    @Override    public void onPrepared(MediaPlayer mediaPlayer) {     mMediaPlayer.start();    }   });  } 

至此,你以為就完了?
其實還差非常重要的一步,需要加上相應的權(quán)限:

<!-- 往SDCard寫入數(shù)據(jù)權(quán)限 -->  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  <!-- 在SDCard中創(chuàng)建與刪除文件權(quán)限 -->  <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 

如果不加上以上權(quán)限,可能導致的問題是:有些鈴聲能播放,有些鈴聲播放不了(音樂歌曲文件是無法播放的)。而通過日志的情況來看,所有的鈴聲包括音樂歌曲都是有Uri的,既然都有Uri,為什么還播放不出來呢?一般情況下手機系統(tǒng)出錯的可能性會非常小,何況這么大的錯誤怎么可能出來?因為所有音樂歌曲文件無法播放,而這些文件都是放在sd卡,也就是外部文件的,因此——>需要加上相應的外部文件訪問等權(quán)限。

最后,完整的代碼可以戳這里>>:點擊打開鏈接

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關教程知識閱讀請移步到Android開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 丰城市| 巴东县| 敦化市| 哈尔滨市| 黎城县| 泾源县| 池州市| 澄迈县| 济南市| 濮阳市| 松原市| 青龙| 深水埗区| 宜春市| 城口县| 寻甸| 台安县| 会同县| 凯里市| 宁国市| 虹口区| 大庆市| 泰安市| 涪陵区| 洪雅县| 婺源县| 伊金霍洛旗| 淮滨县| 即墨市| 绥滨县| 卓尼县| 璧山县| 大安市| 上思县| 大同县| 海阳市| 新建县| 泰州市| 阿克陶县| 大安市| 思南县|