19a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri/** 29a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri * Copyright (c) 2015, The Android Open Source Project 39a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri * 49a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri * Licensed under the Apache License, Version 2.0 (the "License"); 59a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri * you may not use this file except in compliance with the License. 69a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri * You may obtain a copy of the License at 79a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri * 89a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri * http://www.apache.org/licenses/LICENSE-2.0 99a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri * 109a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri * Unless required by applicable law or agreed to in writing, software 119a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri * distributed under the License is distributed on an "AS IS" BASIS, 129a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri * See the License for the specific language governing permissions and 149a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri * limitations under the License. 159a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri */ 169a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri 179a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseripackage android.service.carrier; 189a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri 199a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseriimport android.os.Parcel; 209a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseriimport android.os.Parcelable; 219a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri 229a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri/** 239a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri * Used to pass info to CarrierConfigService implementations so they can decide what values to 249a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri * return. 259a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri */ 269a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseripublic class CarrierIdentifier implements Parcelable { 279a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri 289a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri /** Used to create a {@link CarrierIdentifier} from a {@link Parcel}. */ 299a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri public static final Creator<CarrierIdentifier> CREATOR = new Creator<CarrierIdentifier>() { 309a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri @Override 319a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri public CarrierIdentifier createFromParcel(Parcel parcel) { 329a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri return new CarrierIdentifier(parcel); 339a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri } 349a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri 359a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri @Override 369a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri public CarrierIdentifier[] newArray(int i) { 379a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri return new CarrierIdentifier[i]; 389a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri } 399a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri }; 409a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri 419a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri private String mMcc; 429a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri private String mMnc; 439a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri private String mSpn; 449a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri private String mImsi; 459a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri private String mGid1; 469a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri private String mGid2; 479a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri 489a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri public CarrierIdentifier(String mcc, String mnc, String spn, String imsi, String gid1, 499a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri String gid2) { 509a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri mMcc = mcc; 519a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri mMnc = mnc; 529a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri mSpn = spn; 539a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri mImsi = imsi; 549a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri mGid1 = gid1; 559a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri mGid2 = gid2; 569a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri } 579a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri 589a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri /** @hide */ 599a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri public CarrierIdentifier(Parcel parcel) { 609a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri readFromParcel(parcel); 619a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri } 629a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri 639a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri /** Get the mobile country code. */ 649a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri public String getMcc() { 659a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri return mMcc; 669a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri } 679a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri 689a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri /** Get the mobile network code. */ 699a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri public String getMnc() { 709a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri return mMnc; 719a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri } 729a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri 739a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri /** Get the service provider name. */ 749a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri public String getSpn() { 759a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri return mSpn; 769a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri } 779a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri 789a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri /** Get the international mobile subscriber identity. */ 799a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri public String getImsi() { 809a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri return mImsi; 819a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri } 829a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri 839a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri /** Get the group identifier level 1. */ 849a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri public String getGid1() { 859a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri return mGid1; 869a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri } 879a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri 889a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri /** Get the group identifier level 2. */ 899a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri public String getGid2() { 909a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri return mGid2; 919a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri } 929a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri 939a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri @Override 949a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri public int describeContents() { 959a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri return 0; 969a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri } 979a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri 989a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri @Override 999a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri public void writeToParcel(Parcel out, int flags) { 1009a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri out.writeString(mMcc); 1019a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri out.writeString(mMnc); 1029a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri out.writeString(mSpn); 1039a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri out.writeString(mImsi); 1049a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri out.writeString(mGid1); 1059a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri out.writeString(mGid2); 1069a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri } 1079a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri 108b1a43484d5df60756332df705abe4724a56000e4Jonathan Basseri @Override 109b1a43484d5df60756332df705abe4724a56000e4Jonathan Basseri public String toString() { 110b1a43484d5df60756332df705abe4724a56000e4Jonathan Basseri return "CarrierIdentifier{" 111b1a43484d5df60756332df705abe4724a56000e4Jonathan Basseri + "mcc=" + mMcc 112b1a43484d5df60756332df705abe4724a56000e4Jonathan Basseri + ",mnc=" + mMnc 113b1a43484d5df60756332df705abe4724a56000e4Jonathan Basseri + ",spn=" + mSpn 114b1a43484d5df60756332df705abe4724a56000e4Jonathan Basseri + ",imsi=" + mImsi 115b1a43484d5df60756332df705abe4724a56000e4Jonathan Basseri + ",gid1=" + mGid1 116b1a43484d5df60756332df705abe4724a56000e4Jonathan Basseri + ",gid2=" + mGid2 117b1a43484d5df60756332df705abe4724a56000e4Jonathan Basseri + "}"; 118b1a43484d5df60756332df705abe4724a56000e4Jonathan Basseri } 119b1a43484d5df60756332df705abe4724a56000e4Jonathan Basseri 1209a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri /** @hide */ 1219a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri public void readFromParcel(Parcel in) { 1229a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri mMcc = in.readString(); 1239a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri mMnc = in.readString(); 1249a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri mSpn = in.readString(); 1259a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri mImsi = in.readString(); 1269a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri mGid1 = in.readString(); 1279a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri mGid2 = in.readString(); 1289a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri } 12964997623bfa04e80064b6056fab0fb23144acb44Meng Wang 13064997623bfa04e80064b6056fab0fb23144acb44Meng Wang /** @hide */ 13164997623bfa04e80064b6056fab0fb23144acb44Meng Wang public interface MatchType { 13264997623bfa04e80064b6056fab0fb23144acb44Meng Wang int ALL = 0; 13364997623bfa04e80064b6056fab0fb23144acb44Meng Wang int SPN = 1; 13464997623bfa04e80064b6056fab0fb23144acb44Meng Wang int IMSI_PREFIX = 2; 13564997623bfa04e80064b6056fab0fb23144acb44Meng Wang int GID1 = 3; 13664997623bfa04e80064b6056fab0fb23144acb44Meng Wang int GID2 = 4; 13764997623bfa04e80064b6056fab0fb23144acb44Meng Wang } 1389a1c9b67c4b2426884deb60c1ff84130ab47333cJonathan Basseri} 139