当前位置: 首页 > news >正文

试述建设一个网站的具体步骤/关键词排名seo

试述建设一个网站的具体步骤,关键词排名seo,评价一个网站的好坏,一个域名做多个网站关于拦截的文章我之前写过拦截Back按键和Home按键的处理方法,今天就开发过程中关于电话,短信的拦截做一个总结。 一:拦截来电的功能实现 现在的Android版本已经把Phone类的相关API给隐藏起来了,想要用代码实现挂断电话的功能&a…

关于拦截的文章我之前写过拦截Back按键和Home按键的处理方法,今天就开发过程中关于电话,短信的拦截做一个总结。

一:拦截来电的功能实现

  现在的Android版本已经把Phone类的相关API给隐藏起来了,想要用代码实现挂断电话的功能,就必须通过AIDL才行,然后利用反射来使用其方法。

  1:在程序中新建一个包,因为要使用aidl,所以包名必须为:com.android.internal.telephony。

   2:在这个包里面新建一个名为ITelephony.aidl的文件,然后在文件里面写入代码:

package com.android.internal.telephony;interface ITelephony{boolean endCall();void answerRingingCall();}
   这个时候就可以监听电话的状态, 现在我们处理的方式是如果联系人在手机中不存在就进行来电拦截 ,代码如下: 
package com.example.zf_bluteethservice;import java.lang.reflect.Method;
import java.util.ArrayList;import com.android.internal.telephony.ITelephony;import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.database.Cursor;
import android.provider.ContactsContract;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.media.AudioManager;
import android.os.RemoteException;public class PhoneStatReceiver extends BroadcastReceiver{String TAG = "lyj_incall";TelephonyManager telMgr;private AudioManager mAudioManager;private static int previousMuteMode = -1;@Overridepublic void onReceive(Context context, Intent intent) {telMgr = (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); //M:lyj -- 拦截来电铃声 start ---if (previousMuteMode == -1){previousMuteMode = mAudioManager.getRingerMode();mAudioManager.setRingerMode(0);}mAudioManager.setRingerMode(previousMuteMode);previousMuteMode = -1;//M:lyj -- 拦截来电铃声 end ---switch (telMgr.getCallState()) {case TelephonyManager.CALL_STATE_RINGING:String number = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER); if (!getPhoneNum(context).contains(number)) {Log.e("lyj_incall", "Reject to answer ring call.");//挂断电话     endCall();//再恢复正常铃声     }break;case TelephonyManager.CALL_STATE_OFFHOOK:                               break;case TelephonyManager.CALL_STATE_IDLE:                               break;}}/*** 挂断电话*/private void endCall(){Class<TelephonyManager> c = TelephonyManager.class;         try{Method getITelephonyMethod = c.getDeclaredMethod("getITelephony", (Class[]) null);getITelephonyMethod.setAccessible(true);ITelephony iTelephony = null;Log.e(TAG, "End call.");iTelephony = (ITelephony) getITelephonyMethod.invoke(telMgr, (Object[]) null);iTelephony.endCall();}catch (Exception e){Log.e(TAG, "Fail to answer ring call.", e);}        }private ArrayList<String>  getPhoneNum(Context context) {ArrayList<String> numList = new ArrayList<String>();//得到ContentResolver对象   ContentResolver cr = context.getContentResolver();     //取得电话本中开始一项的光标   Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);   while (cursor.moveToNext())   {               // 取得联系人ID   String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));   Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);   // 取得电话号码(可能存在多个号码)   while (phone.moveToNext())   {   String strPhoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));   numList.add(strPhoneNumber);  Log.v("tag","strPhoneNumber:"+strPhoneNumber);}   phone.close();   }   cursor.close();return numList;}
}
  注意  1:PhoneStatReceiver一定要在清单文件(AndroidManifest.xml)中注册。   2:在AndroidManifest.xml 添加权限

    <!-- 挂断手机的权限 -->  <uses-permission android:name="android.permission.CALL_PHONE"/>  <!-- 读取手机状态的权限 -->  <uses-permission android:name="android.permission.READ_PHONE_STATE" />  <!-- 读content的权限 -->  <uses-permission android:name="android.permission.READ_CONTACTS" />  
     这里只是完成了对来电的拦截功能,未对外拨电话进行拦截。

二:拦截来电铃声

private static int previousMuteMode = -1;/*** 来电静音** @param context*/
private void toggleRingerMute(Context context)
{AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);if (previousMuteMode == -1){previousMuteMode = am.getRingerMode();am.setRingerMode(0);}am.setRingerMode(previousMuteMode);previousMuteMode = -1;
}
  这段代码在来电拦截的代码中写过,这个大家一看就明白。

 三:短信拦截

  要做一个自动短信回复,所以需要拦截系统短信.

  1.在Manifest.xml里加"接收"SMS的权限  

<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
  2:在Manifest.xml里注册一个receive

<!-- 注册Receiver,并且设置优先级 --><receiver android:name=".AutoSMS" android:exported="false"><intent-filter android:priority="1000"><action android:name="android.provider.Telephony.SMS_RECEIVED"/></intent-filter></receiver>
3.定义一个短信接收类,并且重写onReceive

 完整代码如下:

package com.example.zf_bluteethservice;import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;//继承BroadcastReceiver
public class AutoSMS extends BroadcastReceiver {private String TAG="LYJ_Mms";//广播消息类型public static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED";//覆盖onReceive方法@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubLog.i(TAG, "引发接收事件");//先判断广播消息String action = intent.getAction();if (SMS_RECEIVED_ACTION.equals(action)){Log.i(TAG, "引发接收事件");Toast.makeText(context, "屏蔽一条短信信息", Toast.LENGTH_LONG).show();abortBroadcast();//获取intent参数Bundle bundle=intent.getExtras();}}}
  通过广播拦截这样就能屏蔽来的短信。

  以上电话和短信的拦截代码实现 希望对大家有所帮助。


 

http://www.jmfq.cn/news/5242825.html

相关文章:

  • 做网站 图片更好看/小学四年级摘抄新闻
  • wordpress多主题破解版/泉州seo排名扣费
  • vip网站怎么做/百度seo分析工具
  • flashfxp 发布网站/手机优化
  • 网站更改备案信息在哪里/互联网推广是干什么的
  • wordpress 用户名/seo 工具分析
  • 网站建设公司./网页设计主题推荐
  • 王也道长经典语录/安徽百度seo教程
  • 网站建设你懂的/今天国内最新消息
  • 电商网站的推广方式/优化公司怎么优化网站的
  • 公司做网站自己可以做/长沙优化科技有限公司
  • 设计广告图用什么软件/长沙网站优化seo
  • 网站备案查询怎么查/西安百度公司地址介绍
  • 做调查的有哪些网站有哪些/百度长尾关键词挖掘工具
  • 行业网站建设收费明细/成都网站建设公司
  • 常州营销型网站建设/合肥网络优化推广公司
  • 北京南站在几环/网站设计公司报价
  • 自己做有趣的网站/链交换
  • 网站制作公司去哪找客户/培训课程表
  • 九江建筑/宜昌网站seo
  • 网站服务器 内容更新吗/全自动引流推广软件免费
  • 专业的购物网站定制/seo草根博客
  • 成人本科可以考研吗/搜索引擎优化的完整过程
  • 主机托管服务/seo建设招商
  • 做网站 信科网络/设计好看的网站
  • 创意产品设计大赛/杭州百度快照优化排名推广
  • 东莞网站制作方案定制/网站搭建需要什么技术
  • 申请域名后可以做自己的网站吗/怎样做好网络推广呀
  • 东莞网站建设推广公司哪家好/搜索引擎推广的三种方式
  • 牛b插网站建设/企业网站seo公司