Merge "Add EuiccCardManager and EuiccCardController."
This commit is contained in:
@@ -510,7 +510,9 @@ java_library {
|
||||
"telephony/java/com/android/internal/telephony/ITelephony.aidl",
|
||||
"telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl",
|
||||
"telephony/java/com/android/internal/telephony/IWapPushManager.aidl",
|
||||
"telephony/java/com/android/internal/telephony/euicc/IEuiccCardController.aidl",
|
||||
"telephony/java/com/android/internal/telephony/euicc/IEuiccController.aidl",
|
||||
"telephony/java/com/android/internal/telephony/euicc/IGetAllProfilesCallback.aidl",
|
||||
"wifi/java/android/net/wifi/IWifiManager.aidl",
|
||||
"wifi/java/android/net/wifi/aware/IWifiAwareEventCallback.aidl",
|
||||
"wifi/java/android/net/wifi/aware/IWifiAwareManager.aidl",
|
||||
|
||||
@@ -81,10 +81,10 @@ import android.net.INetworkPolicyManager;
|
||||
import android.net.IpSecManager;
|
||||
import android.net.NetworkPolicyManager;
|
||||
import android.net.NetworkScoreManager;
|
||||
import android.net.nsd.INsdManager;
|
||||
import android.net.nsd.NsdManager;
|
||||
import android.net.lowpan.ILowpanManager;
|
||||
import android.net.lowpan.LowpanManager;
|
||||
import android.net.nsd.INsdManager;
|
||||
import android.net.nsd.NsdManager;
|
||||
import android.net.wifi.IRttManager;
|
||||
import android.net.wifi.IWifiManager;
|
||||
import android.net.wifi.IWifiScanner;
|
||||
@@ -130,6 +130,7 @@ import android.telecom.TelecomManager;
|
||||
import android.telephony.CarrierConfigManager;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.telephony.euicc.EuiccCardManager;
|
||||
import android.telephony.euicc.EuiccManager;
|
||||
import android.util.Log;
|
||||
import android.view.ContextThemeWrapper;
|
||||
@@ -504,6 +505,13 @@ final class SystemServiceRegistry {
|
||||
return new EuiccManager(ctx.getOuterContext());
|
||||
}});
|
||||
|
||||
registerService(Context.EUICC_CARD_SERVICE, EuiccCardManager.class,
|
||||
new CachedServiceFetcher<EuiccCardManager>() {
|
||||
@Override
|
||||
public EuiccCardManager createService(ContextImpl ctx) {
|
||||
return new EuiccCardManager(ctx.getOuterContext());
|
||||
}});
|
||||
|
||||
registerService(Context.UI_MODE_SERVICE, UiModeManager.class,
|
||||
new CachedServiceFetcher<UiModeManager>() {
|
||||
@Override
|
||||
|
||||
@@ -3589,8 +3589,18 @@ public abstract class Context {
|
||||
public static final String EUICC_SERVICE = "euicc_service";
|
||||
|
||||
/**
|
||||
* Use with {@link #getSystemService} to retrieve a
|
||||
* {@link android.text.ClipboardManager} for accessing and modifying
|
||||
* Use with {@link #getSystemService(String)} to retrieve a
|
||||
* {@link android.telephony.euicc.EuiccCardManager} to access the device eUICC (embedded SIM).
|
||||
*
|
||||
* @see #getSystemService(String)
|
||||
* @see android.telephony.euicc.EuiccCardManager
|
||||
* TODO(b/35851809): Make this a SystemApi.
|
||||
* @hide
|
||||
*/
|
||||
public static final String EUICC_CARD_SERVICE = "euicc_card_service";
|
||||
|
||||
/**
|
||||
* Use with {@link #getSystemService(String)} to retrieve a
|
||||
* {@link android.content.ClipboardManager} for accessing and modifying
|
||||
* the contents of the global clipboard.
|
||||
*
|
||||
|
||||
18
core/java/android/service/euicc/EuiccProfileInfo.aidl
Normal file
18
core/java/android/service/euicc/EuiccProfileInfo.aidl
Normal file
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Copyright (C) 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package android.service.euicc;
|
||||
|
||||
parcelable EuiccProfileInfo;
|
||||
88
telephony/java/android/telephony/euicc/EuiccCardManager.java
Normal file
88
telephony/java/android/telephony/euicc/EuiccCardManager.java
Normal file
@@ -0,0 +1,88 @@
|
||||
/*
|
||||
* Copyright (C) 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package android.telephony.euicc;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
import android.service.euicc.EuiccProfileInfo;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.internal.telephony.euicc.IEuiccCardController;
|
||||
import com.android.internal.telephony.euicc.IGetAllProfilesCallback;
|
||||
|
||||
/**
|
||||
* EuiccCardManager is the application interface to an eSIM card.
|
||||
*
|
||||
* @hide
|
||||
*
|
||||
* TODO(b/35851809): Make this a SystemApi.
|
||||
*/
|
||||
public class EuiccCardManager {
|
||||
private static final String TAG = "EuiccCardManager";
|
||||
|
||||
/** Result code of execution with no error. */
|
||||
public static final int RESULT_OK = 0;
|
||||
|
||||
/**
|
||||
* Callback to receive the result of an eUICC card API.
|
||||
*
|
||||
* @param <T> Type of the result.
|
||||
*/
|
||||
public interface ResultCallback<T> {
|
||||
/**
|
||||
* This method will be called when an eUICC card API call is completed.
|
||||
*
|
||||
* @param resultCode This can be {@link #RESULT_OK} or other positive values returned by the
|
||||
* eUICC.
|
||||
* @param result The result object. It can be null if the {@code resultCode} is not
|
||||
* {@link #RESULT_OK}.
|
||||
*/
|
||||
void onComplete(int resultCode, T result);
|
||||
}
|
||||
|
||||
private final Context mContext;
|
||||
|
||||
/** @hide */
|
||||
public EuiccCardManager(Context context) {
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
private IEuiccCardController getIEuiccCardController() {
|
||||
return IEuiccCardController.Stub.asInterface(
|
||||
ServiceManager.getService("euicc_card_controller"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all the profiles on eUicc.
|
||||
*
|
||||
* @param callback the callback to get the result code and all the profiles.
|
||||
*/
|
||||
public void getAllProfiles(ResultCallback<EuiccProfileInfo[]> callback) {
|
||||
try {
|
||||
getIEuiccCardController().getAllProfiles(mContext.getOpPackageName(),
|
||||
new IGetAllProfilesCallback.Stub() {
|
||||
@Override
|
||||
public void onComplete(int resultCode, EuiccProfileInfo[] profiles) {
|
||||
callback.onComplete(resultCode, profiles);
|
||||
}
|
||||
});
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Error calling getAllProfiles", e);
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Copyright (C) 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.internal.telephony.euicc;
|
||||
|
||||
import com.android.internal.telephony.euicc.IGetAllProfilesCallback;
|
||||
|
||||
/** @hide */
|
||||
interface IEuiccCardController {
|
||||
oneway void getAllProfiles(String callingPackage, in IGetAllProfilesCallback callback);
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
/*
|
||||
* Copyright (C) 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.android.internal.telephony.euicc;
|
||||
|
||||
import android.service.euicc.EuiccProfileInfo;
|
||||
|
||||
/** @hide */
|
||||
oneway interface IGetAllProfilesCallback {
|
||||
void onComplete(int resultCode, in EuiccProfileInfo[] profiles);
|
||||
}
|
||||
Reference in New Issue
Block a user