> Java > java지도 시간 > SIM 카드 상태를 확인하고 Android에서 연락처 정보를 읽는 방법

SIM 카드 상태를 확인하고 Android에서 연락처 정보를 읽는 방법

大家讲道理
풀어 주다: 2016-11-10 11:04:06
원래의
1360명이 탐색했습니다.

프로그램을 작성할 때 SIM 카드에 있는 일부 연락처 정보를 얻어야 하는 경우가 있습니다. SIM 카드 연락처를 얻기 전에 일반적으로 SIM 카드의 상태를 먼저 확인한 다음 SIM 카드를 찾은 후 해당 정보를 얻습니다. 다음 코드를 사용하면 SIM 카드에 있는 연락처의 일부 정보를 읽을 수 있습니다.

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);  
    }  
         
}
로그인 후 복사


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿