zoukankan      html  css  js  c++  java
  • android sim 卡短信读写

            因为对短信读写操作的api 被隐藏了 , 我们须要使用Java反射机制的学习》一文中提到的反射的方法得到隐藏API 。

    这有一个用例大家能够下载http://zhushou.360.cn/detail/index/soft_id/1608427

    http://download.csdn.net/detail/qgy92320/8967551

    查看效果

    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<SmsMessage> getSmsList(){
    		ArrayList<SmsMessage> list = new ArrayList<SmsMessage>();
    		SmsManager newSmsManager = SmsManager.getDefault();
    		try {
    			Class<?> smsManagerClass = Class.forName("android.telephony.SmsManager");
    			Method localMethod = smsManagerClass.getMethod("getAllMessagesFromIcc",null);
    			try {
    				list = (ArrayList<SmsMessage>)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;
    	}
    	


  • 相关阅读:
    常用正则表达式实例
    java doc注释
    不让WINDOWS检测硬盘的方法
    maven eclipse插件使用问题解决
    indexof 和 indexofany有什么区别
    asp.net验证码
    C#里如何把数据库里的日期显示为只包含年月日
    雷人的发现 谷歌浏览器三大不为人知的秘密
    三层架构实例
    正则表达式30分钟入门教程
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5152821.html
Copyright © 2011-2022 走看看