`

为Notification自定义铃声

 
阅读更多

如下是为Notification自定义铃声的部分片段

 

  • 铃声选择(已记住上次选择的铃声)
    	_btnNotificationChooseRington
    		.setOnClickListener(new OnClickListener()
    		{
    			@Override
    			public void onClick(View v)
    			{
    				
    				
    				Intent intent = new Intent( RingtoneManager.ACTION_RINGTONE_PICKER);
    				intent.putExtra( RingtoneManager.EXTRA_RINGTONE_TYPE,
    				RingtoneManager.TYPE_NOTIFICATION);
    				
    				Uri  ringtongUri = null;
    				final SharedPreferences sharedPreferences = MoreSettingActivity.this.getSharedPreferences(Constants.SHARED_PREFERENCE_NAME, Context.MODE_PRIVATE);
    				
    				String uri = sharedPreferences.getString(CommonDefn.PREFERENCE_NOTIFICATION_RINGTONG, "null");
    				if("null".equals(uri)) {
    					ringtongUri  = (Uri) null;
    				}
    				else {
    					ringtongUri = android.net.Uri.parse(uri);
    				}
    				
    				intent.putExtra( RingtoneManager.EXTRA_RINGTONE_TITLE, getString(R.string.notification_ringtong));
    			
    				
    				intent.putExtra( RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,ringtongUri);
    				
    				startActivityForResult( intent, RESULT_FIRST_USER);  
    				
    			}
    		
    			});
     

 

  • 铃声保存(注意静音保存为null)
    @Override
    	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    		
    		Log.d(TAG, String.format("requestCode=%d,resultCode = %d", requestCode,  resultCode));
    		
    		if (resultCode == RESULT_OK ) {
    			Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
    			if (uri != null) {
    					String ringTonePath = uri.toString();
    					SharedPreferences	_prefse  = getSharedPreferences(Constants.SHARED_PREFERENCE_NAME, Context.MODE_PRIVATE);
    					
    					_prefse.edit().putString(CommonDefn.PREFERENCE_NOTIFICATION_RINGTONG, ringTonePath).commit();
    					
    					
    				}
    			else {Log.d(TAG, "null");
    				SharedPreferences	_prefse  = getSharedPreferences(Constants.SHARED_PREFERENCE_NAME, Context.MODE_PRIVATE);
    				
    				_prefse.edit().putString(CommonDefn.PREFERENCE_NOTIFICATION_RINGTONG, "null").commit();
    			}
    			
    
    			}
    		else if (resultCode == RESULT_CANCELED) {
    			
    		}
    		
    		
    		super.onActivityResult(requestCode, resultCode, data);
    		
    		
    	}
  • 铃声设置
    private boolean isNotificationSoundEnabled() {
    		//return sharedPrefs.getBoolean(Constants.SETTINGS_SOUND_ENABLED, true);
    		return !sharedPrefs.getString(CommonDefn.PREFERENCE_NOTIFICATION_RINGTONG, "null").equals("null");
    	}
    
    
    private boolean isNotificationVibrateEnabled() {
    		return sharedPrefs.getBoolean(Constants.SETTINGS_VIBRATE_ENABLED, true);
    	}
    
                          if(isNotificationSoundEnabled()&&isNotificationVibrateEnabled()){
    				    notification.sound =  android.net.Uri.parse(sharedPrefs.getString(CommonDefn.PREFERENCE_NOTIFICATION_RINGTONG, Settings.System.DEFAULT_NOTIFICATION_URI.toString()));
    				    long[] vibrate = {0,100,200,300};
    		                    notification.vibrate =  vibrate;
    			}
    			else if (isNotificationSoundEnabled()&&!isNotificationVibrateEnabled()) {
    				 notification.sound =  android.net.Uri.parse(sharedPrefs.getString(CommonDefn.PREFERENCE_NOTIFICATION_RINGTONG, Settings.System.DEFAULT_NOTIFICATION_URI.toString()));
    				//notification.defaults = Notification.DEFAULT_SOUND;
    			}
     
0
0
分享到:
评论

相关推荐

    Notification的使用示例各种效果

    Notification的使用示例各种效果,包含系统一般notification的示例,以及自定义铃声震动等

    Android高薪之路:Android程序员面试宝典 李宁

    4 2 2 通知 Notification 4 3 菜单 第5章 文件存储 5 1 SharedPreferences 5 2 流文件 5 3 XML存储 5 4 JSON存储 第6章 数据库 6 1 SQLite基础知识 6 2 SQLite 函数 6 2 1 核心函数 6 2 2 日期和时间函数 6 2 3 ...

    Google Android SDK开发范例大全(第3版)part2

     8.9 设置远程下载音乐为手机铃声  8.10 远程下载桌面背景图案  8.11 将手机文件上传至网站服务器  8.12 移动博客发布器  8.13 移动RSS阅读器  8.14 远程下载安装Android程序  8.15 手机下载看3gp影片 ...

    Google Android SDK开发范例大全(第3版) 1/5

    8.9 设置远程下载音乐为手机铃声 8.10 远程下载桌面背景图案 8.11 将手机文件上传至网站服务器 8.12 移动博客发布器 8.13 移动RSS阅读器 8.14 远程下载安装Android程序 8.15 手机下载看3gp影片 8.16 访问网站Login ...

    Google Android SDK开发范例大全(第3版) 4/5

    8.9 设置远程下载音乐为手机铃声 8.10 远程下载桌面背景图案 8.11 将手机文件上传至网站服务器 8.12 移动博客发布器 8.13 移动RSS阅读器 8.14 远程下载安装Android程序 8.15 手机下载看3gp影片 8.16 访问网站Login ...

    Google Android SDK开发范例大全(第3版) 3/5

    8.9 设置远程下载音乐为手机铃声 8.10 远程下载桌面背景图案 8.11 将手机文件上传至网站服务器 8.12 移动博客发布器 8.13 移动RSS阅读器 8.14 远程下载安装Android程序 8.15 手机下载看3gp影片 8.16 访问网站Login ...

    Google Android SDK开发范例大全(第3版) 5/5

    8.9 设置远程下载音乐为手机铃声 8.10 远程下载桌面背景图案 8.11 将手机文件上传至网站服务器 8.12 移动博客发布器 8.13 移动RSS阅读器 8.14 远程下载安装Android程序 8.15 手机下载看3gp影片 8.16 访问网站Login ...

    《Google Android SDK开发范例大全(第3版)》.pdf

    8.9 设置远程下载音乐为手机铃声 534 8.10 远程下载桌面背景图案 539 8.11 将手机文件上传至网站服务器 542 8.12 移动博客发布器 546 8.13 移动rss阅读器 551 8.14 远程下载安装android程序 560 ...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    8.9 设置远程下载音乐为手机铃声——RingtoneManager与铃声存放路径 8.10 远程下载桌面背景图案——URLConnection与setWallpaper()搭配 8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    8.9 设置远程下载音乐为手机铃声——RingtoneManager与铃声存放路径 8.10 远程下载桌面背景图案——URLConnection与setWallpaper()搭配 8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    8.9 设置远程下载音乐为手机铃声——RingtoneManager与铃声存放路径 8.10 远程下载桌面背景图案——URLConnection与setWallpaper()搭配 8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客...

    Google Android SDK开发范例大全的目录

    8.9 设置远程下载音乐为手机铃声——RingtoneManager与铃声存放路径 8.10 远程下载桌面背景图案——URLConnection与setWallpaper()搭配 8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客...

    Google+Android+SDK开发范例大全

    实时卫星云图——HttpURLConnection与URLConnection和运行线程 8.8 通过网络播放MP3——Runnable存储FileOutputStream技巧 8.9 设置远程下载音乐为手机铃声——RingtoneManager与铃声存放路径 8.10 远程下载桌面背景...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    8.9 设置远程下载音乐为手机铃声——RingtoneManager与铃声存放路径 8.10 远程下载桌面背景图案——URLConnection与setWallpaper()搭配 8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动...

    Google Android SDK 开发范例大全01

    8.9 设置远程下载音乐为手机铃声——RingtoneManager与铃声存放路径 8.10 远程下载桌面背景图案——URLConnection与setWallpaper()搭配 8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客...

    Google Android SDK 开发范例大全02

    8.9 设置远程下载音乐为手机铃声——RingtoneManager与铃声存放路径 8.10 远程下载桌面背景图案——URLConnection与setWallpaper()搭配 8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客...

Global site tag (gtag.js) - Google Analytics