Do not throw exception when there is no omapi reader supported

Add cts tests to make sure the result of getReaders() aligns omapi feature
flags. Do not throw exception when there is no omapi readers.

Bug: 131062577
Test: atest CtsOmapiTestCases
Change-Id: I2ad0057adb975ffcbf9bd5d6a9788bc79bd860e3
This commit is contained in:
Jack Yu
2020-01-03 15:17:17 +08:00
parent d031947100
commit a2f18d1b0a

View File

@@ -22,14 +22,11 @@
package android.se.omapi;
import android.app.ActivityThread;
import android.annotation.NonNull;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.pm.IPackageManager;
import android.content.pm.PackageManager;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
@@ -143,10 +140,6 @@ public final class SEService {
throw new NullPointerException("Arguments must not be null");
}
if (!hasOMAPIReaders()) {
throw new UnsupportedOperationException("Device does not support any OMAPI reader");
}
mContext = context;
mSEListener.mListener = listener;
mSEListener.mExecutor = executor;
@@ -277,23 +270,4 @@ public final class SEService {
throw new IllegalStateException(e.getMessage());
}
}
/**
* Helper to check if this device support any OMAPI readers
*/
private static boolean hasOMAPIReaders() {
IPackageManager pm = ActivityThread.getPackageManager();
if (pm == null) {
Log.e(TAG, "Cannot get package manager, assuming OMAPI readers supported");
return true;
}
try {
return pm.hasSystemFeature(PackageManager.FEATURE_SE_OMAPI_UICC, 0)
|| pm.hasSystemFeature(PackageManager.FEATURE_SE_OMAPI_ESE, 0)
|| pm.hasSystemFeature(PackageManager.FEATURE_SE_OMAPI_SD, 0);
} catch (RemoteException e) {
Log.e(TAG, "Package manager query failed, assuming OMAPI readers supported", e);
return true;
}
}
}