Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android sim 卡短信讀寫

android sim 卡短信讀寫

編輯:關於Android編程

由於對短信讀寫操作的api 被隱藏了 , 我們需要使用《Java反射機制的學習》一文中提到的反射的方法得到隱藏API 。這有一個用例大家可以下載http://zhushou.360.cn/detail/index/soft_id/1608427

查看效果

android寫sim卡短信

	/***
	 * 1)	byte[] smsc : 短信服務中心的地址,個人認為在復制到SIM卡過程中可以為空。 
     * 2)	byte[] pdu : 中文翻譯是協議數據單元,這個參數最為重要,一會我們會做詳細地解釋說明。 
     * 3)	int status : 短信存儲在Icc卡上的狀態,有4種狀態,1是已讀,3是未讀,5是已發送,7是未發送。 
	 * @param smsc
	 * @param pdu
	 * @param status
	 */
	public boolean writeSMStoIcc(byte[] smsc,byte[] pdu,int status){
//		mKeyboardHelper = new ReflectionInternal(this,"android.telephony.SmsManager");
		//調用類,聲明類,mKeyboardView,mPasswordEntry,為需要傳遞的參數
//		mKeyboardHelper.setInt("copyMessageToIcc", 0);
		boolean flag = false;
		SmsManager newSmsManager = SmsManager.getDefault();
		try {
			Class smsManagerClass = Class.forName("android.telephony.SmsManager");
			Method localMethod = smsManagerClass.getMethod("copyMessageToIcc",new Class[]{byte[].class,byte[].class,Integer.TYPE});
			Object[] arrayList = new Object[3];
			arrayList[0] = smsc;
			arrayList[1] = pdu;
			arrayList[2] = status;
			try {
				flag = ((Boolean)localMethod.invoke(newSmsManager, arrayList)).booleanValue();
			} catch (IllegalAccessException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				
			} catch (IllegalArgumentException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				
			} catch (InvocationTargetException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} catch (NoSuchMethodException e) {
			// TODO Auto-generated catch block
			Log.e("NoSuchMethodException","NoSuchMethodException :"+ e.getMessage());
			e.printStackTrace();
		} catch (ClassNotFoundException ex) {
			// TODO Auto-generated catch block
			Log.e("ClassNotFoundException","ClassNotFoundException :"+ ex.getMessage());
			ex.printStackTrace();
		}
		return flag;
	}

android 讀sim卡短信

public ArrayList getSmsList(){
		ArrayList list = new ArrayList();
		SmsManager newSmsManager = SmsManager.getDefault();
		try {
			Class smsManagerClass = Class.forName("android.telephony.SmsManager");
			Method localMethod = smsManagerClass.getMethod("getAllMessagesFromIcc",null);
			try {
				list = (ArrayList)localMethod.invoke(newSmsManager, null);
			} catch (IllegalAccessException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IllegalArgumentException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (InvocationTargetException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} catch (NoSuchMethodException e) {
			// TODO Auto-generated catch block
			Log.e("NoSuchMethodException","NoSuchMethodException :"+ e.getMessage());
			e.printStackTrace();
		} catch (ClassNotFoundException ex) {
			// TODO Auto-generated catch block
			Log.e("ClassNotFoundException","ClassNotFoundException :"+ ex.getMessage());
			ex.printStackTrace();
		}
		
		return list;
	}
	


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved