`

为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
分享到:
评论

相关推荐

    Android给app自定义铃声

    在Android平台上,为应用程序自定义铃声是一项常见的需求,它可以让用户根据个人喜好为特定的通知、消息或事件设置专属的声音。下面将详细讲解如何在Android app中实现这一功能。 首先,你需要确保你的应用拥有访问...

    Notification的使用示例各种效果

    本示例主要探讨如何利用Notification API创建各种效果的提示,包括系统默认样式以及自定义铃声和震动。 首先,我们要了解`Notification`的基本结构。一个`Notification`通常包含图标、标题、内容、时间戳和扩展信息...

    Go-小米推送支持201706版本ios推送标题自定义铃声等功能

    要实现自定义铃声功能,通常需要在消息中包含一个特定的键值对,如`ringtone`,指向你希望播放的铃声音频文件。注意,iOS设备可能有限制,只能选择系统预设的铃声或静音。 7. **文件`xiaomipush201706-master`分析...

    Android给app设置自定义铃声功能

    在Android应用开发中,为用户提供自定义铃声的功能是一项常见的需求。本文将详细介绍如何在Android app中实现这一功能,包括调用系统铃声选择界面、播放选定铃声、记录用户选择以及添加必要的权限。 首先,我们需要...

    Android Notification使用方法总结

    2. 声音提示:可以使用RingtoneManager来实现声音提示,例如播放默认的通知铃声或自定义的铃声。 六、Android Notification实例详解 1. Android Notification的生命周期:Notification的生命周期包括创建、显示、...

    Notification与NotificationManager详细介绍

    指定系统铃声可使用`Audio.Media.INTERNAL_CONTENT_URI`。 2. **Flags**: `Notification`的`flags`字段可以控制通知的行为,如`FLAG_INSISTENT`可以使声音循环播放。 3. **Lights**: 可以通过`ledARGB`、`ledOnMS...

    Android应用源码基于安卓的自定义闹钟项目

    6. **Notification**:当闹钟触发时,通过`Notification`向用户展示提醒。可以自定义通知的标题、内容、图标、声音等,以提供良好的用户体验。 7. **Service**:可能需要创建一个`Service`来处理闹钟触发时的后台...

    android 闹钟提醒并且在锁屏下弹出Dialog对话框并播放铃声和震动

    5. **Dialog**: 虽然在锁屏上通常使用Notification,但若想模拟Dialog效果,可以创建一个自定义的Activity,并在BroadcastReceiver中启动它。使用`WindowManager.LayoutParams`设置Activity为浮动窗口,使其看起来像...

    Android应用源码之手机铃声软件源代码

    此外,也可能涉及到文件系统操作,读取和设置用户的自定义铃声。 4. **多媒体处理**:由于涉及到铃声,源码中必定包含对音频文件的处理。Android提供MediaStore类来访问系统中的音频文件,而MediaPlayer类则可以...

    安卓闹钟代码

    在安卓平台上,实现一个闹钟应用涉及到多个关键知识点,包括Android系统的AlarmManager服务、BroadcastReceiver、PendingIntent...同时,也可以根据实际需求进行定制化修改,如添加更多闹钟设置选项、自定义铃声库等。

    Android 手机铃声软件源码-IT计算机-毕业设计.zip

    这个项目不仅涵盖了基本的Android应用构建,还涉及到自定义铃声管理、播放等功能的实现,是理解Android开发实践的一个理想实例。 首先,我们需要了解Android开发的基础知识。Android是一种基于Linux的开源操作系统...

    Android 源码 选择&播放&暂停铃声

    7. **自定义铃声播放器**: 如果需要自定义播放器UI,可以使用Ringtone类,它提供了play()和stop()方法,且支持通过AudioAttributes进行更精细的控制。 8. **音频焦点管理**: 在播放音频时,需要考虑音频焦点,...

    android铃声振动模式

    这通常适用于那些希望自定义振动反馈的应用程序。例如,可以开启或关闭特定类型的振动(如来电振动、通知振动): - 开启来电振动: ```java audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, ...

    Android铃声设置软件源代码

    在Android中,用户可以自定义铃声、通知声音和闹钟声音,这些设置存储在系统的设置数据库中。 1. **铃声资源管理**:在Android中,铃声通常存储在`/res/raw`或`/media/ringtone`目录下,是可打包在应用内的音频文件...

    Android程序研发源码Android 手机铃声软件源码.zip

    8. **SQLite数据库**:为了保存用户的铃声选择或者自定义铃声,应用可能会使用SQLite数据库来存储数据,包括文件路径、铃声名称等。 9. **通知(Notification)**:当用户设置新的铃声时,可能通过通知来告知用户,...

    安卓Android源码——MyNotification.rar

    - **声音和震动**:设置特定的铃声或振动模式,使得通知更具辨识度。 - **大视图样式**:在可扩展的通知中,可以使用大视图样式展示更多的信息。 3. **发送通知**: - 使用`NotificationManager`服务发送通知,...

    Android源代码——手机铃声软件

    8. **通知和广播**:当用户设置了一个新的铃声,应用可以发送一个自定义广播通知其他组件,或者通过Notification向用户展示设置成功的消息。 9. **版本适配与兼容性**:考虑到Android系统的碎片化,开发时需要关注...

    android 整点提醒 AlarmManager Service Notify

    `Notification`是Android提供的一种在状态栏显示消息的方式,可以配合振动、铃声等提醒用户。创建`Notification`需要以下步骤: 1. 创建`NotificationCompat.Builder`对象,这是构建`Notification`的工具类,可以...

    安卓小闹钟

    这款应用不仅具有基础的闹钟功能,还可能包含一些独特的特性,如自定义铃声、重复设置、小憩模式等,以满足不同用户的个性化需求。 在开发一个基于安卓的自定义闹钟项目时,我们需要掌握以下几个核心知识点: 1. *...

    Android学习之多媒体开发,包括音频,视频,录音,闹钟,铃声等.rar

    5. **铃声设置**:Android允许用户自定义铃声,开发者可以通过ContentResolver和Uri来访问系统媒体库并设置指定的音频作为铃声。了解如何在应用中处理RingtonePicker对话框,以及如何处理权限问题,是创建相关功能的...

Global site tag (gtag.js) - Google Analytics