public @NonNull List<SubscriptionInfoCompat> getActiveSubscriptionInfoList() {
if (Build.VERSION.SDK_INT < 22) {
return new LinkedList<>();
}
List<SubscriptionInfo> subscriptionInfos = SubscriptionManager.from(context).getActiveSubscriptionInfoList();
if (subscriptionInfos == null || subscriptionInfos.isEmpty()) {
return new LinkedList<>();
}
List<SubscriptionInfoCompat> compatList = new LinkedList<>();
for (SubscriptionInfo subscriptionInfo : subscriptionInfos) {
compatList.add(new SubscriptionInfoCompat(subscriptionInfo.getSubscriptionId(),
subscriptionInfo.getDisplayName()));
}
return compatList;
}
java类android.telephony.SubscriptionManager的实例源码
SubscriptionManagerCompat.java 文件源码
项目:PeSanKita-android
阅读 20
收藏 0
点赞 0
评论 0
SimService.java 文件源码
项目:NotifyTools
阅读 16
收藏 0
点赞 0
评论 0
@Override
protected void onHandleIntent(Intent intent) {
log.d("onHandleIntent");
//SubscriptionManager 该类主要包含了所有sim卡的信息
SubscriptionManager mSubscriptionManager = SubscriptionManager.from(this);
int simcnt = mSubscriptionManager.getActiveSubscriptionInfoCount();
List<SubscriptionInfo> lstSim = mSubscriptionManager.getActiveSubscriptionInfoList();
for (int i = 0; i < lstSim.size(); i++) {
SubscriptionInfo si = lstSim.get(i);
if (si != null)
log.d(si.toString());
}
TelecomManager telecomManager = (TelecomManager) getSystemService(Context.TELECOM_SERVICE);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
List<PhoneAccountHandle> lstPA=telecomManager.getCallCapablePhoneAccounts();
int accoutSum =lstPA.size();
for(int i=0;i<accoutSum;i++)
log.d("accountSum: " + accoutSum +lstPA.get(i) );
}
}
SubscriptionManagerCompat.java 文件源码
项目:Cable-Android
阅读 21
收藏 0
点赞 0
评论 0
public @NonNull List<SubscriptionInfoCompat> getActiveSubscriptionInfoList() {
if (Build.VERSION.SDK_INT < 22) {
return new LinkedList<>();
}
List<SubscriptionInfo> subscriptionInfos = SubscriptionManager.from(context).getActiveSubscriptionInfoList();
if (subscriptionInfos == null || subscriptionInfos.isEmpty()) {
return new LinkedList<>();
}
List<SubscriptionInfoCompat> compatList = new LinkedList<>();
for (SubscriptionInfo subscriptionInfo : subscriptionInfos) {
compatList.add(new SubscriptionInfoCompat(subscriptionInfo.getSubscriptionId(),
subscriptionInfo.getDisplayName(),
subscriptionInfo.getMcc(),
subscriptionInfo.getMnc()));
}
return compatList;
}
SubscriptionManagerCompat.java 文件源码
项目:Silence
阅读 20
收藏 0
点赞 0
评论 0
public @NonNull List<SubscriptionInfoCompat> getActiveSubscriptionInfoList() {
if (Build.VERSION.SDK_INT < 22) {
return new LinkedList<>();
}
List<SubscriptionInfo> subscriptionInfos = SubscriptionManager.from(context).getActiveSubscriptionInfoList();
if (subscriptionInfos == null || subscriptionInfos.isEmpty()) {
return new LinkedList<>();
}
List<SubscriptionInfoCompat> compatList = new LinkedList<>();
for (SubscriptionInfo subscriptionInfo : subscriptionInfos) {
compatList.add(new SubscriptionInfoCompat(subscriptionInfo.getSubscriptionId(),
subscriptionInfo.getDisplayName()));
}
return compatList;
}
SettingsFragment.java 文件源码
项目:sms-ticket
阅读 33
收藏 0
点赞 0
评论 0
@TargetApi(Build.VERSION_CODES.LOLLIPOP_MR1)
private void fillDualSimList(PreferenceScreen preferenceScreen) {
PreferenceCategory category = (PreferenceCategory) preferenceScreen.findPreference("sms_category");
ListPreference preference = (ListPreference) category.findPreference(Preferences.DUALSIM_SIM);
List<String> simIds = new ArrayList<>();
List<String> simNames = new ArrayList<>();
simIds.add(String.valueOf(Preferences.VALUE_DEFAULT_SIM));
simNames.add(getString(R.string.sim_default));
SubscriptionManager subscriptionManager = SubscriptionManager.from(getActivity());
for (SubscriptionInfo subscriptionInfo : subscriptionManager.getActiveSubscriptionInfoList()) {
simIds.add(String.valueOf(subscriptionInfo.getSubscriptionId()));
simNames.add(getString(R.string.sim_name, subscriptionInfo.getSimSlotIndex() + 1, subscriptionInfo
.getDisplayName()));
}
preference.setEntries(simNames.toArray(new String[simNames.size()]));
preference.setEntryValues(simIds.toArray(new String[simIds.size()]));
preference.setDefaultValue(String.valueOf(Preferences.VALUE_DEFAULT_SIM));
preference.setSummary(preference.getEntry());
}
SubscriptionManagerCompat.java 文件源码
项目:PeSanKita-android
阅读 18
收藏 0
点赞 0
评论 0
public Optional<Integer> getPreferredSubscriptionId() {
if (Build.VERSION.SDK_INT < 24) {
return Optional.absent();
}
return Optional.of(SubscriptionManager.getDefaultSmsSubscriptionId());
}
SubscriptionManagerCompat.java 文件源码
项目:PeSanKita-android
阅读 18
收藏 0
点赞 0
评论 0
public Optional<SubscriptionInfoCompat> getActiveSubscriptionInfo(int subscriptionId) {
if (Build.VERSION.SDK_INT < 22) {
return Optional.absent();
}
SubscriptionInfo subscriptionInfo = SubscriptionManager.from(context).getActiveSubscriptionInfo(subscriptionId);
if (subscriptionInfo != null) {
return Optional.of(new SubscriptionInfoCompat(subscriptionId, subscriptionInfo.getDisplayName()));
} else {
return Optional.absent();
}
}
MainActivity.java 文件源码
项目:Msgs
阅读 19
收藏 0
点赞 0
评论 0
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP_MR1)
private void sendSms(final int which,String phone,String context) {
SubscriptionInfo sInfo = null;
final SubscriptionManager sManager = (SubscriptionManager) getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
List<SubscriptionInfo> list = sManager.getActiveSubscriptionInfoList();
if (list.size() == 2) {
// 双卡
sInfo = list.get(which);
} else {
// 单卡
sInfo = list.get(0);
}
if (sInfo != null) {
int subId = sInfo.getSubscriptionId();
SmsManager manager = SmsManager.getSmsManagerForSubscriptionId(subId);
if (!TextUtils.isEmpty(phone)) {
ArrayList<String> messageList =manager.divideMessage(context);
for(String text:messageList){
manager.sendTextMessage(phone, null, text, null, null);
}
Toast.makeText(this, "信息正在发送,请稍候", Toast.LENGTH_SHORT)
.show();
} else {
Toast.makeText(this, "无法正确的获取SIM卡信息,请稍候重试",
Toast.LENGTH_SHORT).show();
}
}
}
DualSimNewApiWrapper.java 文件源码
项目:open-rmbt
阅读 19
收藏 0
点赞 0
评论 0
public static boolean isDualSim(final Context context)
{
try
{
final SubscriptionManager sm = SubscriptionManager.from(context);
final int activeSubscriptionInfoCount = sm.getActiveSubscriptionInfoCount();
//System.out.println("active subscription count: " + activeSubscriptionInfoCount);
return activeSubscriptionInfoCount > 1;
}
catch (Throwable t)
{
//t.printStackTrace();
return false;
}
}
SubscriptionHelper.java 文件源码
项目:BlackList
阅读 24
收藏 0
点赞 0
评论 0
@Nullable
public static List<SubscriptionInfo> getSubscriptions(Context context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
SubscriptionManager sm = SubscriptionManager.from(context);
return sm.getActiveSubscriptionInfoList();
}
return null;
}
SubscriptionManagerCompat.java 文件源码
项目:Cable-Android
阅读 19
收藏 0
点赞 0
评论 0
public Optional<Integer> getPreferredSubscriptionId() {
if (Build.VERSION.SDK_INT < 24) {
return Optional.absent();
}
return Optional.of(SubscriptionManager.getDefaultSmsSubscriptionId());
}
SubscriptionManagerCompat.java 文件源码
项目:Cable-Android
阅读 16
收藏 0
点赞 0
评论 0
public Optional<SubscriptionInfoCompat> getActiveSubscriptionInfo(int subscriptionId) {
if (Build.VERSION.SDK_INT < 22) {
return Optional.absent();
}
SubscriptionInfo subscriptionInfo = SubscriptionManager.from(context).getActiveSubscriptionInfo(subscriptionId);
if (subscriptionInfo != null) {
return Optional.of(new SubscriptionInfoCompat(subscriptionId, subscriptionInfo.getDisplayName(),
subscriptionInfo.getMcc(), subscriptionInfo.getMnc()));
} else {
return Optional.absent();
}
}
SendSmsPresenterImpl.java 文件源码
项目:advancedSmsManager
阅读 16
收藏 0
点赞 0
评论 0
@Override
public void prepareSendSms() {
if (view != null && needDialog) {
view.showLoading();
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
SubscriptionManager mSubscriptionManager = SubscriptionManager.from(context);
subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
if (subInfoList != null && subInfoList.size() > 1) {
carriersICC.add(0, subInfoList.get(0).getSubscriptionId());
carriersICC.add(1, subInfoList.get(1).getSubscriptionId());
carriersNAME.add(0, subInfoList.get(0).getCarrierName().toString());
carriersNAME.add(1, subInfoList.get(1).getCarrierName().toString());
view.hideLoading();
view.renderSimChooserView(context, carriersNAME.get(0), carriersNAME.get(1));
} else {
carriersICC.add(0, subInfoList.get(0).getSubscriptionId());
carriersNAME.add(0, subInfoList.get(0).getCarrierName().toString());
sendSmsFromSubscriptionIdIndex(0);
}
} else {
sendSmsForOldPhones();
}
}
BuilderSimCard.java 文件源码
项目:SmsScheduler
阅读 18
收藏 0
点赞 0
评论 0
@Override
public RadioGroup build() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1) {
return getView();
}
SubscriptionManager subscriptionManager = (SubscriptionManager) activity.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
if (null == subscriptionManager) {
return getView();
}
if (subscriptionManager.getActiveSubscriptionInfoCount() < 2) {
sms.setSubscriptionId(subscriptionManager.getActiveSubscriptionInfoList().get(0).getSubscriptionId());
return getView();
}
getView().setVisibility(View.VISIBLE);
List<Pair<Integer, String>> simCards = new ArrayList<>();
for (SubscriptionInfo info: subscriptionManager.getActiveSubscriptionInfoList()) {
simCards.add(new Pair<>(info.getSubscriptionId(), info.getCarrierName().toString()));
}
RadioButton radio1 = getView().findViewById(R.id.radio_sim1);
RadioButton radio2 = getView().findViewById(R.id.radio_sim2);
prepareRadioButton(radio1, simCards.get(0));
prepareRadioButton(radio2, simCards.get(1));
if (!radio1.isChecked() && !radio2.isChecked()) {
radio1.setChecked(true);
}
return getView();
}
SmsSenderService.java 文件源码
项目:SmsScheduler
阅读 18
收藏 0
点赞 0
评论 0
private SmsManager getSmsManager(int subscriptionId) {
SmsManager smsManager = SmsManager.getDefault();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1) {
return smsManager;
}
SubscriptionManager subscriptionManager = (SubscriptionManager) getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
if (null == subscriptionManager) {
return smsManager;
}
if (null == subscriptionManager.getActiveSubscriptionInfo(subscriptionId)) {
return smsManager;
}
return SmsManager.getSmsManagerForSubscriptionId(subscriptionId);
}
DualNetworkIconData.java 文件源码
项目:Status
阅读 19
收藏 0
点赞 0
评论 0
public DualNetworkIconData(Context context) {
super(context);
telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1)
subscriptionManager = (SubscriptionManager) context.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
}
ForceDozeService.java 文件源码
项目:ForceDoze
阅读 20
收藏 0
点赞 0
评论 0
public void setMobileNetwork(Context context, int targetState) {
if (!Utils.isReadPhoneStatePermissionGranted(context)) {
grantReadPhoneStatePermission();
}
String command;
try {
String transactionCode = getTransactionCode(context);
SubscriptionManager mSubscriptionManager = (SubscriptionManager) context.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
for (int i = 0; i < mSubscriptionManager.getActiveSubscriptionInfoCountMax(); i++) {
if (transactionCode != null && transactionCode.length() > 0) {
int subscriptionId = mSubscriptionManager.getActiveSubscriptionInfoList().get(i).getSubscriptionId();
command = "service call phone " + transactionCode + " i32 " + subscriptionId + " i32 " + targetState;
List<String> output = Shell.SU.run(command);
if (output != null) {
for (String s : output) {
Log.i(TAG, s);
}
} else {
Log.i(TAG, "Error occurred while executing command (" + command + ")");
}
}
}
} catch (Exception e) {
Log.i(TAG, "Failed to toggle mobile data: " + e.getMessage());
}
}
Util.java 文件源码
项目:android-protwall
阅读 22
收藏 0
点赞 0
评论 0
@TargetApi(Build.VERSION_CODES.LOLLIPOP_MR1)
public static String getSubscriptionInfo(Context context) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1)
return "Not supported";
if (!hasPhoneStatePermission(context))
return "No permission";
StringBuilder sb = new StringBuilder();
SubscriptionManager sm = SubscriptionManager.from(context);
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
sb.append("Slots ")
.append(sm.getActiveSubscriptionInfoCount())
.append('/')
.append(sm.getActiveSubscriptionInfoCountMax())
.append("\r\n");
List<SubscriptionInfo> subscriptions = sm.getActiveSubscriptionInfoList();
if (subscriptions != null)
for (SubscriptionInfo si : subscriptions)
sb.append("SIM ")
.append(si.getSimSlotIndex() + 1)
.append('/')
.append(si.getSubscriptionId())
.append(' ')
.append(si.getCountryIso())
.append('/')
.append(si.getMcc()).append(si.getMnc())
.append(' ')
.append(si.getCarrierName())
.append(si.getDataRoaming() == SubscriptionManager.DATA_ROAMING_ENABLE ? " R" : "")
.append("\r\n");
if (sb.length() > 2)
sb.setLength(sb.length() - 2);
return sb.toString();
}
Phone.java 文件源码
项目:batteryhub
阅读 24
收藏 0
点赞 0
评论 0
/**
* Retrieves network operator names from subscription manager.
* NOTE: Requires SDK level 22 or above
*
* @param context
* @return
*/
private static String getNetworkOperators(Context context) {
String operator = "";
if (!PermissionsUtils.checkPermission(context, Manifest.permission.READ_PHONE_STATE)) {
return operator;
}
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1) {
SubscriptionManager subscriptionManager = SubscriptionManager.from(context);
if (subscriptionManager != null) {
List<SubscriptionInfo> subscriptions = subscriptionManager.getActiveSubscriptionInfoList();
if (subscriptions != null) {
for (SubscriptionInfo info : subscriptions) {
CharSequence carrierName = info.getCarrierName();
if (carrierName != null && carrierName.length() > 0) {
operator += carrierName + ";";
}
}
// Remove last delimiter
if (operator.length() >= 1) {
operator = operator.substring(0, operator.length() - 1);
}
}
}
}
return operator;
}
SimCard.java 文件源码
项目:batteryhub
阅读 18
收藏 0
点赞 0
评论 0
/**
* Experimental call to retrieve sim operator names by subscription ids.
*
* @param context Application context
* @return SIM operator name/names with ";" as a delimiter for many.
*/
private static String getSIMOperators(final Context context) {
String operators = "";
if (!PermissionsUtils.checkPermission(context, Manifest.permission.READ_PHONE_STATE)) {
return operators;
}
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1) {
List<SubscriptionInfo> subscriptions = SubscriptionManager.from(context).getActiveSubscriptionInfoList();
if (subscriptions != null && subscriptions.size() > 0) {
for(SubscriptionInfo info : subscriptions){
int subId = info.getSubscriptionId();
String operator = getSimOperatorNameForSubscription(context, subId);
if (operator != null && operator.length() > 0) {
operators += operator + ";";
}
}
// Remove last delimiter
if (operators.length() > 1) {
operators = operators.substring(0, operators.length()-1);
}
}
}
return operators;
}
SmsSenderService.java 文件源码
项目:RememBirthday
阅读 17
收藏 0
点赞 0
评论 0
private SmsManager getSmsManager(int subscriptionId) {
SmsManager smsManager = SmsManager.getDefault();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1) {
return smsManager;
}
SubscriptionManager subscriptionManager = (SubscriptionManager) getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
if (null == subscriptionManager) {
return smsManager;
}
if (null == subscriptionManager.getActiveSubscriptionInfo(subscriptionId)) {
return smsManager;
}
return SmsManager.getSmsManagerForSubscriptionId(subscriptionId);
}
RNSimDataModule.java 文件源码
项目:react-native-sim-data
阅读 16
收藏 0
点赞 0
评论 0
@Override
public Map<String, Object> getConstants() {
final Map<String, Object> constants = new HashMap<>();
try {
TelephonyManager telManager = (TelephonyManager) this.reactContext.getSystemService(Context.TELEPHONY_SERVICE);
SubscriptionManager manager = (SubscriptionManager) this.reactContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
List<SubscriptionInfo> subscriptionInfos = manager.getActiveSubscriptionInfoList();
int sub = 0;
for (SubscriptionInfo subInfo : subscriptionInfos) {
CharSequence carrierName = subInfo.getCarrierName();
String countryIso = subInfo.getCountryIso();
int dataRoaming = subInfo.getDataRoaming(); // 1 is enabled ; 0 is disabled
CharSequence displayName = subInfo.getDisplayName();
String iccId = subInfo.getIccId();
int mcc = subInfo.getMcc();
int mnc = subInfo.getMnc();
String number = subInfo.getNumber();
int simSlotIndex = subInfo.getSimSlotIndex();
int subscriptionId = subInfo.getSubscriptionId();
boolean networkRoaming = telManager.isNetworkRoaming();
String deviceId = telManager.getDeviceId(simSlotIndex);
//String deviceId = telManager.getImei(simSlotIndex) || telManager.getMeid(simSlotIndex);
constants.put("carrierName" + sub, carrierName.toString());
constants.put("displayName" + sub, displayName.toString());
constants.put("countryCode" + sub, countryIso);
constants.put("mcc" + sub, mcc);
constants.put("mnc" + sub, mnc);
constants.put("isNetworkRoaming" + sub, networkRoaming);
constants.put("isDataRoaming" + sub, (dataRoaming == 1));
constants.put("simSlotIndex" + sub, simSlotIndex);
constants.put("phoneNumber" + sub, number);
constants.put("deviceId" + sub, deviceId);
constants.put("simSerialNumber" + sub, iccId);
constants.put("subscriptionId" + sub, subscriptionId);
sub++;
}
} catch (Exception e) {
e.printStackTrace();
}
return constants;
}
Commons.java 文件源码
项目:WiFiAPManager
阅读 30
收藏 0
点赞 0
评论 0
public static void setMobileNetworkfromLollipop(Context context)
throws InvocationTargetException, ClassNotFoundException,
NoSuchMethodException, IllegalAccessException, NoSuchFieldException {
String command;
int state;
// Get the current state of the mobile network.
state = isMobileDataEnabled(context) ? 0 : 1;
// Get the value of the "TRANSACTION_setDataEnabled" field.
String transactionCode = getTransactionCode(context);
// Android 5.1+ (API 22) and later.
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
SubscriptionManager mSubscriptionManager = (SubscriptionManager)
context.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
// Loop through the subscription list i.e. SIM list.
for (int i = 0; i < mSubscriptionManager.getActiveSubscriptionInfoCountMax(); i++) {
if (transactionCode.length() > 0) {
// Get the active subscription ID for a given SIM card.
int subscriptionId = mSubscriptionManager.getActiveSubscriptionInfoList()
.get(i).getSubscriptionId();
// Execute the command via `su` to turn off
// mobile network for a subscription service.
command = "service call phone " + transactionCode + " i32 "
+ subscriptionId + " i32 " + state;
ShellUtils.execCommand(command, true);
}
}
} else if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP) {
// Android 5.0 (API 21) only.
if (transactionCode.length() > 0) {
// Execute the command via `su` to turn off mobile network.
command = "service call phone " + transactionCode + " i32 " + state;
ShellUtils.execCommand(command, true);
}
}
}
SubscriptionManagerCompat.java 文件源码
项目:Silence
阅读 19
收藏 0
点赞 0
评论 0
public Optional<SubscriptionInfoCompat> getActiveSubscriptionInfo(int subscriptionId) {
if (Build.VERSION.SDK_INT < 22) {
return Optional.absent();
}
SubscriptionInfo subscriptionInfo = SubscriptionManager.from(context).getActiveSubscriptionInfo(subscriptionId);
if (subscriptionInfo != null) {
return Optional.of(new SubscriptionInfoCompat(subscriptionId, subscriptionInfo.getDisplayName()));
} else {
return Optional.absent();
}
}
ShowSimOperator.java 文件源码
项目:Xposed-ShowSimOperator
阅读 18
收藏 0
点赞 0
评论 0
/**
* Get the original network operator name (as if TelephonyManager#getNetworkOperatorName were unhooked)
*
* @param subId subscription id
* @return the original network operator name
*/
private static String getRealNetworkOperatorNameBySubId(int subId) throws Throwable {
Method getPhoneId = XposedHelpers.findMethodExact(SubscriptionManager.class.getName(), null, "getPhoneId", int.class);
int phoneId = (Integer) getPhoneId.invoke(getSubscriptionManager(), subId);
Class<?> TelephonyProperties = XposedHelpers.findClass("com.android.internal.telephony.TelephonyProperties", null);
String PROPERTY_OPERATOR_ALPHA = (String) XposedHelpers.getStaticObjectField(TelephonyProperties, "PROPERTY_OPERATOR_ALPHA");
Method getTelephonyProperty = XposedHelpers.findMethodExact(TelephonyManager.class.getName(), null, "getTelephonyProperty", int.class, String.class, String.class);
return (String) getTelephonyProperty.invoke(getTelephonyManager(), phoneId, PROPERTY_OPERATOR_ALPHA, "");
}
ServiceSinkhole.java 文件源码
项目:MKAPP
阅读 25
收藏 0
点赞 0
评论 0
@Override
public void onDestroy() {
Log.i(TAG, "Destroy");
commandLooper.quit();
logLooper.quit();
statsLooper.quit();
if (registeredInteractiveState) {
unregisterReceiver(interactiveStateReceiver);
registeredInteractiveState = false;
}
if (registeredPowerSave) {
unregisterReceiver(powerSaveReceiver);
registeredPowerSave = false;
}
if (registeredUser) {
unregisterReceiver(userReceiver);
registeredUser = false;
}
if (registeredIdleState) {
unregisterReceiver(idleStateReceiver);
registeredIdleState = false;
}
if (registeredConnectivityChanged) {
unregisterReceiver(connectivityChangedReceiver);
registeredConnectivityChanged = false;
}
if (registeredPackageChanged) {
unregisterReceiver(packageChangedReceiver);
registeredPackageChanged = false;
}
if (phone_state) {
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
if (tm != null) {
tm.listen(phoneStateListener, PhoneStateListener.LISTEN_NONE);
phone_state = false;
}
}
if (subscriptionsChangedListener != null &&
Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
SubscriptionManager sm = SubscriptionManager.from(this);
sm.removeOnSubscriptionsChangedListener((SubscriptionManager.OnSubscriptionsChangedListener) subscriptionsChangedListener);
subscriptionsChangedListener = null;
}
try {
if (vpn != null) {
stopNative(vpn, true);
stopVPN(vpn);
vpn = null;
unprepare();
}
} catch (Throwable ex) {
Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
}
jni_done();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.unregisterOnSharedPreferenceChangeListener(this);
super.onDestroy();
}
Util.java 文件源码
项目:MKAPP
阅读 27
收藏 0
点赞 0
评论 0
@TargetApi(Build.VERSION_CODES.LOLLIPOP_MR1)
public static String getSubscriptionInfo(Context context) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1)
return "Not supported";
if (!hasPhoneStatePermission(context))
return "No permission";
StringBuilder sb = new StringBuilder();
SubscriptionManager sm = SubscriptionManager.from(context);
sb.append("Slots ")
.append(sm.getActiveSubscriptionInfoCount())
.append('/')
.append(sm.getActiveSubscriptionInfoCountMax())
.append("\r\n");
int dataid = -1;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
dataid = SubscriptionManager.getDefaultDataSubscriptionId();
int voiceid = -1;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
voiceid = SubscriptionManager.getDefaultVoiceSubscriptionId();
List<SubscriptionInfo> subscriptions = sm.getActiveSubscriptionInfoList();
if (subscriptions != null)
for (SubscriptionInfo si : subscriptions)
sb.append("SIM ")
.append(si.getSimSlotIndex() + 1)
.append('/')
.append(si.getSubscriptionId())
.append(' ')
.append(si.getCountryIso())
.append('/')
.append(si.getMcc()).append(si.getMnc())
.append(' ')
.append(si.getCarrierName())
.append(si.getSubscriptionId() == dataid ? " D" : "")
.append(si.getSubscriptionId() == voiceid ? " V" : "")
.append(si.getDataRoaming() == SubscriptionManager.DATA_ROAMING_ENABLE ? " R" : "")
.append("\r\n");
if (sb.length() > 2)
sb.setLength(sb.length() - 2);
return sb.toString();
}
SubscriptionInfoHelper.java 文件源码
项目:open-rmbt
阅读 20
收藏 0
点赞 0
评论 0
public SubscriptionInfoHelper(Context context) {
subscriptionManager = (SubscriptionManager) context
.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
}
ServiceSinkhole.java 文件源码
项目:NoRootFirewall-Custom
阅读 29
收藏 0
点赞 0
评论 0
@Override
public void onDestroy() {
Log.i(TAG, "Destroy");
commandLooper.quit();
logLooper.quit();
statsLooper.quit();
if (registeredInteractiveState) {
unregisterReceiver(interactiveStateReceiver);
registeredInteractiveState = false;
}
if (registeredPowerSave) {
unregisterReceiver(powerSaveReceiver);
registeredPowerSave = false;
}
if (registeredUser) {
unregisterReceiver(userReceiver);
registeredUser = false;
}
if (registeredIdleState) {
unregisterReceiver(idleStateReceiver);
registeredIdleState = false;
}
if (registeredConnectivityChanged) {
unregisterReceiver(connectivityChangedReceiver);
registeredConnectivityChanged = false;
}
if (registeredPackageAdded) {
unregisterReceiver(packageAddedReceiver);
registeredPackageAdded = false;
}
if (phone_state) {
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
if (tm != null) {
tm.listen(phoneStateListener, PhoneStateListener.LISTEN_NONE);
phone_state = false;
}
}
if (subscriptionsChangedListener != null &&
Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
SubscriptionManager sm = SubscriptionManager.from(this);
sm.removeOnSubscriptionsChangedListener((SubscriptionManager.OnSubscriptionsChangedListener) subscriptionsChangedListener);
subscriptionsChangedListener = null;
}
try {
if (vpn != null) {
stopNative(vpn, true);
stopVPN(vpn);
vpn = null;
unprepare();
}
} catch (Throwable ex) {
Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
}
jni_done();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.unregisterOnSharedPreferenceChangeListener(this);
super.onDestroy();
}
Util.java 文件源码
项目:NoRootFirewall-Custom
阅读 29
收藏 0
点赞 0
评论 0
@TargetApi(Build.VERSION_CODES.LOLLIPOP_MR1)
public static String getSubscriptionInfo(Context context) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1)
return "Not supported";
if (!hasPhoneStatePermission(context))
return "No permission";
StringBuilder sb = new StringBuilder();
SubscriptionManager sm = SubscriptionManager.from(context);
sb.append("Slots ")
.append(sm.getActiveSubscriptionInfoCount())
.append('/')
.append(sm.getActiveSubscriptionInfoCountMax())
.append("\r\n");
int dataid = -1;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
dataid = sm.getDefaultDataSubscriptionId();
int voiceid = -1;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
voiceid = sm.getDefaultVoiceSubscriptionId();
List<SubscriptionInfo> subscriptions = sm.getActiveSubscriptionInfoList();
if (subscriptions != null)
for (SubscriptionInfo si : subscriptions)
sb.append("SIM ")
.append(si.getSimSlotIndex() + 1)
.append('/')
.append(si.getSubscriptionId())
.append(' ')
.append(si.getCountryIso())
.append('/')
.append(si.getMcc()).append(si.getMnc())
.append(' ')
.append(si.getCarrierName())
.append(si.getSubscriptionId() == dataid ? " D" : "")
.append(si.getSubscriptionId() == voiceid ? " V" : "")
.append(si.getDataRoaming() == SubscriptionManager.DATA_ROAMING_ENABLE ? " R" : "")
.append("\r\n");
if (sb.length() > 2)
sb.setLength(sb.length() - 2);
return sb.toString();
}