यह अब एंड्रॉइड 7.1 के रूप में काम नहीं करता है और यह Google Play की डेवलपर नीतियों का उल्लंघन कर सकता है ।
इसके बजाय, उपयोगकर्ता को सेवा अधिसूचना को ब्लॉक करना होगा ।
यहाँ Lior Iluz द्वारा उत्तर में तकनीक का मेरा कार्यान्वयन है ।
कोड
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;
}
}
ForegroundEnablingService.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" />
अनुकूलता
परीक्षण किया गया और इस पर काम किया जा रहा है:
- आधिकारिक एमुलेटर
- 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
- सोनी एक्सपीरिया एम
- सैमसंग गैलेक्सी ?
- Genymotion
- CyanogenMod
अब एंड्रॉइड 7.1 के रूप में काम नहीं कर रहा है।