如果在其中一个双Sim插槽中更改了SIM卡的信息,如何检索?

时间:2017-04-05 05:58:58

标签: android android-broadcastreceiver

我知道我们可以使用TelephonyManager Class检索单个Sim卡的信息。但是如何检索有关多张SIM卡的信息呢?比如说,我的手机丢失,有人在其中一个插槽中更换了SIM卡。我如何收到包括IMEI号码,电话号码等信息?我只想在更换SIM卡时才想要这些信息。

在TelephonyManager类中,有直接的方法来检索这些信息(如IMEI号码,电话号码,电话网络类型等),但信息仅提供一张SIM卡。我如何收到有关多张SIM卡的所有信息。 P.S-SubscriptionManager类没有像TelephonyManager类那样的直接方法。

    import android.content.Context;
        import android.support.v7.app.AppCompatActivity;
        import android.os.Bundle;
        import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.widget.TextView;

import java.util.List;

import static android.R.id.content;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        int subID,simposition,content;
        String carrier,number;
        TextView textView2=(TextView)findViewById(R.id.text);
        SubscriptionManager subManager=(SubscriptionManager)getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);

        List<SubscriptionInfo> subInfoList=subManager.getActiveSubscriptionInfoList();

        for(int i=0;i<subInfoList.size();i++)
        {
           subID = subInfoList.get(i).getSubscriptionId();
            simposition = subInfoList.get(i).getSimSlotIndex();
             content=subInfoList.get(i).describeContents();
          carrier= (String) subInfoList.get(i).getCarrierName();
            number= subInfoList.get(i).getNumber();
        }

       /* String info2="Sim Details:\n";
        info2+="\n SubId:"+subID;
        info2+="\n Sim position:"+simposition;
        info2+="\n contents:"+content;
        info2+="\n carrier:"+carrier;
        info2+="\n number:"+number;
        textView2.setText(info2);*/
    }
}

1 个答案:

答案 0 :(得分:2)

您可以使用此工作示例代码来解决您的问题。

参考链接:https://github.com/ITger/DualSIMCard

来自班级的示例代码: https://github.com/ITger/DualSIMCard/blob/master/dualSIMcardReader/src/main/java/pl/itger/dualsimcard/TelInfo.java

RequestDispatcher dispatcher = request.getRequestDispatcher("demo.jsp");
dispatcher.forward(request, response);

我希望这会有所帮助。