我正在尝试构建一个简单的应用程序,该应用程序在到达某个位置时会拨打电话号码。 我在ResultReceiver中使用IntentService。 可见该应用程序时,一切正常,但当该应用程序在后台时,则没有任何效果。 通知不是我所需要的。我需要打电话。 甚至可以在API 26上实现吗?
添加了服务:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this,
0, notificationIntent, 0);
Notification notification = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID)
.setContentTitle("Example Service")
.setContentIntent(pendingIntent)
.build();
startForeground(1, notification);
mReceiver = GeoFenceHandler.mGeoFenceReceiver;
GeofencingEvent geoFenceEvent = GeofencingEvent.fromIntent(intent);
if (geoFenceEvent.hasError()) {
int errorCode = geoFenceEvent.getErrorCode();
deliverResultToReceiver(FAILURE_RESULT, "Error" + errorCode);
} else {
int transitionType = geoFenceEvent.getGeofenceTransition();
//User enter transition
if (Geofence.GEOFENCE_TRANSITION_ENTER == transitionType) {
deliverResultToReceiver(SUCCESS_RESULT, ENTER_AREA);
//User exit transition
} else if (Geofence.GEOFENCE_TRANSITION_EXIT == transitionType) {
deliverResultToReceiver(SUCCESS_RESULT, LEFT_AREA);
}
}
stopSelf();
return START_NOT_STICKY;
}
但是,背景仍然没有任何反应。
谢谢。
答案 0 :(得分:1)
您需要使您的服务成为前台服务。在Android Oreo之后,您需要将后台服务声明为前台服务,并在应用程序处于后台时发出可见通知。
更多内容,请访问:https://developer.android.com/guide/components/services