我正在尝试使用android 4.3更改HTC One上的通知流量(不响铃)。我正在使用此代码:
int setting = Settings.System.getInt(getContentResolver(), "notifications_use_ring_volume", -20);
boolean b = Settings.System.putInt(getContentResolver(), "notifications_use_ring_volume", 1 - setting);
所以每次b都是真的(意味着已经进行了更改)并且每次我放0或1.现在,在我更改值之后,当我读取它时,它会显示我所拥有的值在avove代码中更新,但是当我要去设置 - > Sound-> Volumes时,
“使用铃声音量通知”
复选框保持不变(当该设置为0或1时)。我在这里错过了什么吗?如何从代码更新此设置,以便我可以在手机的设置中看到此更改?
答案 0 :(得分:1)
您需要使用AudioManager。它有一个名为setStreamVolume()的方法,可以帮助您操作音频流的音量。
这是一个演示您想要的示例应用程序。 Link to sample applcation
答案 1 :(得分:0)
试试这个。
AudioManager am = (AudioManager) getSystemService(AUDIO_SERVICE);
am.setStreamVolume(AudioManager.STREAM_NOTIFICATION, am.getStreamMaxVolume(AudioManager.STREAM_NOTIFICATION), AudioManager.FLAG_PLAY_SOUND);
您可以控制音量,更改第二个参数。 (am.getStreamMaxVolume(AudioManager.STREAM_NOTIFICATION))
答案 2 :(得分:-1)
在应用程序资源文件夹中创建一个“raw”文件夹,并放置铃声(.mp3)文件 在该原始文件夹中,然后在收到通知时添加此行。
notification.sound = Uri.parse(“android.resource://” + context.getPackageName()+“/”+ R.raw.sapphire);
OR
int icon = R.drawable.ic_launcher;
long when = System.currentTimeMillis();
NotificationManager notificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(icon, message, when);
notification.sound = Uri.parse("android.resource://"
+ context.getPackageName() + "/" + R.raw.sapphire);
然后创建您的意图和待处理的意图并调用此
notification.setLatestEventInfo(上下文,消息,标题, 的PendingIntent);
notificationManager.notify(0,notification);