Heim > Java > javaLernprogramm > So ermitteln Sie den SIM-Kartenstatus und lesen Kontaktinformationen in Android

So ermitteln Sie den SIM-Kartenstatus und lesen Kontaktinformationen in Android

大家讲道理
Freigeben: 2016-11-10 11:04:06
Original
1361 Leute haben es durchsucht

Wenn Sie ein Programm schreiben, müssen Sie manchmal einige Kontaktinformationen auf der SIM-Karte abrufen. Bevor wir die SIM-Kartenkontakte abrufen, ermitteln wir normalerweise zuerst den Status der SIM-Karte und erhalten dann deren Informationen, nachdem wir die SIM-Karte gefunden haben. Mit dem folgenden Code können wir einige Informationen zu den Kontakten auf der SIM-Karte lesen.

import android.app.Activity;  
import android.content.Context;  
import android.content.Intent;  
import android.database.Cursor;  
import android.net.Uri;  
import android.os.Bundle;  
import android.telephony.TelephonyManager;  
import android.widget.TextView;  
     
public class PhoneTest extends Activity {  
    private TextView mTextView;  
    protected Cursor mCursor = null;  
    private TelephonyManager mTelephonyManager;  
    private String mString = "";  
         
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        mTextView = (TextView)findViewById(R.id.text);  
        mTextView.setTextSize(20.3f);  
        isSimExist();  
        if(getSimState() == TelephonyManager.SIM_STATE_READY){  
            mString += "    卡存在\n";  
            getSimContacts("content://icc/adn"); //一般用这一条,如果这条不行的话可以试试下面的一条。  
            getSimContacts("content://sim/adn");//此种读法在我们手机里不能读取,所以,还是用上个uri比较好。  
        }  
        mTextView.setText(mString);  
    }  
         
    private void getSimContacts(String str){  
        Intent intent = new Intent();  
        intent.setData(Uri.parse(str));  
        Uri uri = intent.getData();  
        mCursor = getContentResolver().query(uri, null, null, null, null);  
        if(mCursor == null){  
            mString += "不能从" + str + "读数据\n";  
            return ;  
        }  
        mString += "第一列:" + mCursor.getColumnName(0) + "\n";  
        mString += "第二列:" + mCursor.getColumnName(1) + "\n";  
        mString += "第三列:" + mCursor.getColumnName(2) + "\n";  
        mString += "第四列:" + mCursor.getColumnName(3) + "\n";  
        mString += "列数:" + mCursor.getColumnCount() + "\n";  
        mString += "行数:" + mCursor.getCount() + "\n";  
        if (mCursor != null) {  
            while (mCursor.moveToNext()) {  
                // 取得联系人名字  
                int nameFieldColumnIndex = mCursor.getColumnIndex("name");  
                mString += mCursor.getString(nameFieldColumnIndex)+"    ";  
                // 取得电话号码  
                int numberFieldColumnIndex = mCursor  
                        .getColumnIndex("number");  
                mString += mCursor.getString(numberFieldColumnIndex)+"    ";  
                // 取得邮箱  
                int emailsFieldColumnIndex = mCursor  
                        .getColumnIndex("emails");  
                mString += mCursor.getString(emailsFieldColumnIndex)+"    ";  
                // 取得id  
                int idFieldColumnIndex = mCursor  
                        .getColumnIndex("_id");  
                mString += mCursor.getString(idFieldColumnIndex)+"\n";  
            }  
        }  
        mString += mCursor + "\n";  
        mCursor.close();  
    }  
         
    private int getSimState(){  
        return mTelephonyManager.getSimState();  
    }  
         
    private void isSimExist(){  
        mTelephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);  
         int simState = mTelephonyManager.getSimState();  
     
         switch (simState) {  
     
             case TelephonyManager.SIM_STATE_ABSENT:  
                 mString = "无卡";  
                 // do something  
                 break;  
     
             case TelephonyManager.SIM_STATE_NETWORK_LOCKED:  
                 mString = "需要NetworkPIN解锁";  
                 // do something  
     
                 break;  
     
             case TelephonyManager.SIM_STATE_PIN_REQUIRED:  
                 mString = "需要PIN解锁";  
                 // do something  
                 break;  
     
             case TelephonyManager.SIM_STATE_PUK_REQUIRED:  
                 mString = "需要PUN解锁";  
                 // do something  
                 break;  
     
             case TelephonyManager.SIM_STATE_READY:  
                 mString = "良好";  
                 // do something  
                 break;  
     
             case TelephonyManager.SIM_STATE_UNKNOWN:  
                 mString = "未知状态";  
                 // do something  
                 break;  
         }  
         mTextView.setText(mString);  
    }  
         
}
Nach dem Login kopieren


Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage