Support Background Service Limitations.
In order to receive SMS-Push, Target SDK will use "Context.startForegroundService ()" API for more than 26 service applications. Test: manual Bug: 63048126 Change-Id: I701eab6002d01cfc6e559db7aad5455781dc162c Signed-off-by: hirotaka motegi <hirotaka.motegi.um@nttdocomo.com>
This commit is contained in:
committed by
Amit Mahajan
parent
2fef505e1e
commit
233baef5b2
26
packages/WAPPushManager/src/com/android/smspush/WapPushManager.java
Normal file → Executable file
26
packages/WAPPushManager/src/com/android/smspush/WapPushManager.java
Normal file → Executable file
@@ -22,11 +22,15 @@ import android.content.ComponentName;
|
||||
import android.content.ContentValues;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.PackageManager.NameNotFoundException;
|
||||
import android.database.Cursor;
|
||||
import android.database.sqlite.SQLiteOpenHelper;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
import android.os.Build;
|
||||
import android.os.IBinder;
|
||||
import android.os.PowerManager;
|
||||
import android.os.RemoteException;
|
||||
import android.util.Log;
|
||||
|
||||
@@ -216,7 +220,27 @@ public class WapPushManager extends Service {
|
||||
intent.setClassName(mContext, lastapp.className);
|
||||
intent.setComponent(new ComponentName(lastapp.packageName,
|
||||
lastapp.className));
|
||||
if (mContext.startService(intent) == null) {
|
||||
PackageManager pm = mContext.getPackageManager();
|
||||
PowerManager powerManager =
|
||||
(PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
|
||||
try {
|
||||
ApplicationInfo appInfo = pm.getApplicationInfo(lastapp.packageName, 0);
|
||||
if (appInfo.targetSdkVersion < Build.VERSION_CODES.O ||
|
||||
powerManager.isIgnoringBatteryOptimizations(lastapp.packageName)) {
|
||||
if (mContext.startService(intent) == null) {
|
||||
Log.w(LOG_TAG, "invalid name " +
|
||||
lastapp.packageName + "/" + lastapp.className);
|
||||
return WapPushManagerParams.INVALID_RECEIVER_NAME;
|
||||
}
|
||||
} else {
|
||||
if (mContext.startForegroundService(intent) == null) {
|
||||
Log.w(LOG_TAG, "invalid name " +
|
||||
lastapp.packageName + "/" + lastapp.className);
|
||||
return WapPushManagerParams.INVALID_RECEIVER_NAME;
|
||||
}
|
||||
}
|
||||
|
||||
} catch (NameNotFoundException e) {
|
||||
Log.w(LOG_TAG, "invalid name " +
|
||||
lastapp.packageName + "/" + lastapp.className);
|
||||
return WapPushManagerParams.INVALID_RECEIVER_NAME;
|
||||
|
||||
Reference in New Issue
Block a user