/* * * Copyright (C) 2020, University of the Basque Country (UPV/EHU) * * Contact for licensing options: * * This file is part of MCOP MCPTT Client * * This is free software: you can redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation, either version 3 * of the License, or (at your option) any later version. * * This is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.mcopenplatform.muoapi.managerIapi; import android.Manifest; import android.content.Context; import android.content.pm.PackageManager; import android.os.Build; import android.support.v4.app.ActivityCompat; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.util.Log; import org.mcopenplatform.muoapi.BuildConfig; class UtilsIapi { private final static String TAG = org.mcopenplatform.muoapi.utils.Utils.getTAG(UtilsIapi.class.getCanonicalName()); protected static boolean isSimAvailable(Context context) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) { SubscriptionManager sManager = (SubscriptionManager) context.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE); if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { return false; }else{ SubscriptionInfo infoSim1 = sManager.getActiveSubscriptionInfoForSimSlotIndex(0); SubscriptionInfo infoSim2 = sManager.getActiveSubscriptionInfoForSimSlotIndex(1); if (infoSim1 != null || infoSim2 != null) { return true; } } } else { TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { if(BuildConfig.DEBUG) Log.e(TAG,"Not allowed to access the status of the sim now"); return false; }else if (telephonyManager.getSimSerialNumber() != null) { return true; } } return false; } }