Android 6广播接收器和呼叫服务
我开发了一个需要在特定时间调用tomtom服务的应用程序。对于Android 6的早期版本,我已经实例化了一个警报,并在它进入BroadcastReceiver时执行了这项工作。 从第6版开始,谷歌拒绝我的应用程序,因为我无法使用请求\忽略\电池\优化,因此我的警报无法工作,因为它被系统关闭 我读过谷歌云消息(GCM),但我并不这么认为 有办法解决我的问题吗 我想在特定时间呼叫特定的tom-tom服务 谢谢 设置报警的我的代码:Android 6广播接收器和呼叫服务,android,mobile,android-6.0.1-marshmallow,Android,Mobile,Android 6.0.1 Marshmallow,我开发了一个需要在特定时间调用tomtom服务的应用程序。对于Android 6的早期版本,我已经实例化了一个警报,并在它进入BroadcastReceiver时执行了这项工作。 从第6版开始,谷歌拒绝我的应用程序,因为我无法使用请求\忽略\电池\优化,因此我的警报无法工作,因为它被系统关闭 我读过谷歌云消息(GCM),但我并不这么认为 有办法解决我的问题吗 我想在特定时间呼叫特定的tom-tom服务 谢谢 设置报警的我的代码: if (Build.VERSION.SDK_INT>=19
if (Build.VERSION.SDK_INT>=19 && Build.VERSION.SDK_INT<=22) {
alarmManager.setExact(AlarmManager.RTC_WAKEUP, alarmDate.getTimeInMillis(), sender);
Log.d(LOG_TAG,"SETTATO ALLARME PER API MAGGIORE DI 19 O MINORE UGUALE A 22");
} else if(Build.VERSION.SDK_INT>22){
alarmManager.setAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, alarmDate.getTimeInMillis(), sender);
// alarmManager.setAlarmClock(new AlarmManager.AlarmClockInfo(alarmDate.getTimeInMillis(), sender), sender);
Log.d(LOG_TAG,"SETTATO ALLARME PER API MAGGIORE O UGUALE A 23");
}else {
Log.d(LOG_TAG,"SETTATO ALLARME CON VERSIONE API INFERIORE A 19");
alarmManager.set(AlarmManager.RTC_WAKEUP, alarmDate.getTimeInMillis(), sender);
}
由于您可以访问internet,我看不出有任何理由不能使用GCM触发http请求。由于您可以访问internet,我看不到有任何理由不能使用GCM触发http请求
String result=readUrl("https://api.tomtom.com/lbs/services/route/3/.........");
private static String readUrl(String urlString) throws Exception {
BufferedReader reader = null;
StringBuffer buffer = new StringBuffer();
try {
URL url = new URL(urlString);
reader = new BufferedReader(new InputStreamReader(url.openStream()));
int read;
char[] chars = new char[1024];
while ((read = reader.read(chars)) != -1)
buffer.append(chars, 0, read);
return buffer.toString();
} catch (Exception e) {
e.printStackTrace();
Log.e(LOG_TAG, "ERRORE:"+e.getMessage());
}finally {
if (reader != null)
reader.close();
}
return buffer.toString();
}