问题描述
我正在尝试创建同时带有声音和振动的警报。当应用程序在前台运行时,一切正常,声音和振动同时工作。但是当应用程序最小化时,只有声音有效。
从服务启动通知:
public override void ItemAdded(SPItemEventProperties properties)
{
SPWeb web = properties.Web;
if (properties.ListTitle.Contains("Request"))
{
SPListItem itemAdded = properties.ListItem;
SPList listRequesters = web.Lists["Requesters"];
SPList listOrganisations = web.Lists["Organisations"];
string username = new SPFieldUserValue(web,itemAdded["Author"].ToString()).User.Name;
string queryString = @"<Where><Eq><FieldRef Name='Requester' /><Value Type='User'>" + username + @"</Value></Eq></Where>";
SPQuery query = new SPQuery
{
Query = queryString
};
SPListItemCollection itemresRequesters = listRequesters.GetItems(query);
string sapNumber = "";
if (itemresRequesters.Count == 1)
{
foreach (SPListItem itemresult in itemresRequesters)
{
sapNumber = itemresult["SAPNumber"].ToString();
itemAdded["Manager"] = itemresult["ManagerL1"];
itemAdded["SAPNumber"] = itemresult["SAPNumber"];
itemAdded.Update();
}
}
else
{
if (itemresRequesters == null)
{
logops("ERItemAdded","Missing requesters on Requesters list");
}
else
{
logops("ERItemAdded","Requesters - multiple users of the same username :" + itemresRequesters.Count);
}
}
string queryStringOrg = @"<Where><Eq><FieldRef Name='SAPNumber' /><Value Type='Text'>" + sapNumber + @"</Value></Eq></Where>";
SPQuery queryOrg = new SPQuery
{
Query = queryStringOrg
};
SPListItemCollection itemresOrganisations = listOrganisations.GetItems(queryOrg);
if (itemresOrganisations.Count == 1)
{
foreach (SPListItem itemresult in itemresOrganisations)
{
itemAdded["ManagerL2"] = itemresult["Manager L2"];
itemAdded["ManagerL3"] = itemresult["Manager L3"];
itemAdded["Boss"] = itemresult["Boss"];
itemAdded.Update();
logops("ERItemAdded","Higher Managers updated");
}
}
else
{
if (itemresOrganisations == null)
{
logops("ERItemAdded","Organisations - no such Organisation");
}
else
{
logops("ERItemAdded","Organisations - too many Organisations :" + itemresOrganisations.Count);
}
}
//Request Number
DateTime data = (DateTime)itemAdded["Created"];
string numerWniosku = sapNumber +"-" + data.ToString("yyyyMMdd") + "-" + itemAdded["ID"];
itemAdded["Request Number"] = numerWniosku;
logops("ERItemAdded","Request number : " + itemAdded["Request Number"].ToString());
//Request status @R_782_4045@ion
itemAdded["Request Status"] = "Launched";
//Count Attachements
int att = itemAdded.Attachments.Count;
itemAdded["Att"] = att.ToString();
itemAdded.Update();
logops("ERItemAdded","Attachments counted : " + itemAdded.Attachments.Count.ToString());
logops("#############","End of ER");
}
else
{
logops("ERItemAdded","Improper list");
}
}
private void logops(string strEvent,string message)
{
FileIOPermission fp = new FileIOPermission(PermissionState.Unrestricted);
fp.AddpathList(FileIOPermissionAccess.AllAccess,@"d:\Logs");
StreamWriter sw = File.AppendText(@"D:\Logs\ER_Requests_LOG.txt");
StringBuilder sb = new StringBuilder();
sb.Append(DateTime.Now.ToString() + " | " + strEvent +" | " + message + "\n");
sw.WriteLine(sb.ToString());
sw.Close();
}
}
...
startSoundForNotif(STATE_TIMER_FINISHED);
startVibrator();
LogCat 中的错误:
private void startSoundForNotif(int State) {
if (sPrefSettings.getBoolean("switch_notif",true)) {
int mSoundRes;
if (State == STATE_TIMER_FINISHED) {
mSoundRes = sPrefSettings.getInt(KEY_PREF_SOUND_RES,0);
} else {
mSoundRes = sPrefSettings.getInt(KEY_PREF_SOUND_BREAK_RES,0);
}
if (mSoundRes == 0) {
Uri defaultSoundUri = ringtoneManager.getDefaultUri(ringtoneManager.TYPE_NOTIFICATION);
MediaPlayer mPlayer = MediaPlayer.create(getApplication(),defaultSoundUri);
mPlayer.start();
} else {
MediaPlayer mPlayer = MediaPlayer.create(getApplication(),mSoundRes);
mPlayer.start();
}
}
}
private void startVibrator() {
int mVibroNum = sPrefSettings.getInt(KEY_PREF_VIbro_NUM,0);
if (mVibroNum!=0){
Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
ListSounds mListSounds = new ListSounds();
long [][] ListVibro = mListSounds.getListVibro();
if (vibrator.hasVibrator()) {
vibrator.vibrate(ListVibro[mVibroNum],-1);}
}
}
有人可以帮忙解决问题吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)