How to check which sim is using mobile data? or put it this way; mobile data is enabled on which sim?
after a struggling a lot, i was able to find that which sim is using mobile data, but this code only works on android version 7 and above. this code will check, if data is enabled on primary sim, return true, else return false.
private boolean checkIsValidPrimarySim(Context context) {
boolean validSim=false;
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.N){
int mSubscriptionId=-1;
SubscriptionManager subscriptionManager=(SubscriptionManager)context.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
SubscriptionInfo subscriptionInfo=subscriptionManager.getActiveSubscriptionInfoForSimSlotIndex(0);
if(subscriptionInfo!=null){
mSubscriptionId=subscriptionInfo.getSubscriptionId();
if(mSubscriptionId!=-1){
int defaultSubscriptionId=subscriptionManager.getDefaultDataSubscriptionId();
if(mSubscriptionId==defaultSubscriptionId){
validSim=true;
}
else {
//display message to change your defalult data sim
}
}else {
//display message to change your defalult data sim
}
}
else {
//display message to change your defalult data sim
}
}
return validSim;
}