Bu artık Android 7.1'den itibaren çalışmamaktadır ve Google Play'in geliştirici politikalarını ihlal edebilir .
Bunun yerine kullanıcının hizmet bildirimini engellemesini sağlayın .
İşte içinde tekniğinin benim uygulaması var cevap tarafından Lior Iluz .
Kod
ForegroundService.java
public class ForegroundService extends Service {
static ForegroundService instance;
@Override
public void onCreate() {
super.onCreate();
instance = this;
if (startService(new Intent(this, ForegroundEnablingService.class)) == null)
throw new RuntimeException("Couldn't find " + ForegroundEnablingService.class.getSimpleName());
}
@Override
public void onDestroy() {
super.onDestroy();
instance = null;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
ForegroundEnizingService.java
public class ForegroundEnablingService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (ForegroundService.instance == null)
throw new RuntimeException(ForegroundService.class.getSimpleName() + " not running");
startForeground(ForegroundService.instance);
startForeground(this);
stopForeground(true);
stopSelf();
return START_NOT_STICKY;
}
private static final int NOTIFICATION_ID = 10;
private static void startForeground(Service service) {
Notification notification = new Notification.Builder(service).getNotification();
service.startForeground(NOTIFICATION_ID, notification);
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
AndroidManifest.xml
<service android:name=".ForegroundEnablingService" />
<service android:name=".ForegroundService" />
Uyumluluk
Test edildi ve üzerinde çalışıyor:
- Resmi Emülatör
- 4.0.2
- 4.1.2
- 4.2.2
- 4.3.1
- 4.4.2
- 5.0.2
- 5.1.1
- 6.0
- 7.0
- Sony Xperia M
- Samsung Galaksi ?
- Genymotion
- CyanogenMod
Artık Android 7.1'den itibaren çalışmıyor.