android电话管理器(TelephonyManger)实例:
TelephonyManger是管理电话状态、网络信息的服务类。
添加权限:

   

逻辑功能:

package com.example.telephonystatus;  import java.io.FileNotFoundException; import java.io.OutputStream; import java.io.PrintStream; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map;  import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; import android.view.Menu; import android.widget.ListView; import android.widget.SimpleAdapter;  public class MainActivity extends Activity {    private ListView list1;    // 声明代表状态名的数组   private String[] statusName;   // 声明代表手机状态名的集合   private ArrayList statusValues = new ArrayList();    @Override   protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_main);     list1 = (ListView) findViewById(R.id.list1);     // 获取系统的TelephonyManager     TelephonyManager tele = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);     // 获取各种状态名的数组     statusName = getResources().getStringArray(R.array.statusNames);     // 获取SIM卡的状态的数组     String[] simType = getResources().getStringArray(R.array.simState);     // 获取电话网络类型的数组     String[] phoneType = getResources().getStringArray(R.array.phoneType);     // 获取设备编号     statusValues.add(tele.getDeviceId());     // 获取系统平台的版本     statusValues.add(tele.getDeviceSoftwareVersion() != null ? tele         .getDeviceSoftwareVersion() : "未知");     // 获取网络运营代号     statusValues.add(tele.getNetworkOperator());     // 获取网络运营商的名称     statusValues.add(tele.getNetworkOperatorName());     // 获取手机网络的类型     statusValues.add(phoneType[tele.getPhoneType()]);     // 获取设为所在的位置     statusValues.add(tele.getCellLocation() != null ? tele         .getCellLocation().toString() : "未知");     // 获取sim卡的国别     statusValues.add(tele.getSimCountryIso());     // 获取sim卡的序列号     statusValues.add(tele.getSimSerialNumber());     // 获取sim卡的状态     statusValues.add(simType[tele.getSimState()]);      List> list = new ArrayList>();     for (int i = 0; i < statusValues.size(); i++) {       HashMap hasp = new HashMap();       hasp.put("name", statusName[i]);       hasp.put("values", statusValues.get(i));       list.add(hasp);     }     SimpleAdapter simple = new SimpleAdapter(this, list, R.layout.items,         new String[] { "name", "values" }, new int[] { R.id.text1,             R.id.text2 });     list1.setAdapter(simple);     // 创建一个电话监听器         PhoneStateListener listener = new PhoneStateListener() {            // 监听电话呼叫状态           @Override           public void onCallStateChanged(int state, String incomingNumber) {              switch (state) {             // 无任何状态             case TelephonyManager.CALL_STATE_IDLE:               break;             case TelephonyManager.CALL_STATE_OFFHOOK:               break;             // 来电响铃             case TelephonyManager.CALL_STATE_RINGING:               OutputStream os = null;               try {                 os = openFileOutput("phoneList", MODE_APPEND);               } catch (FileNotFoundException e) {                 e.printStackTrace();               }               PrintStream ps = new PrintStream(os);               // 讲电话号码记录到文件中               ps.println(new Date() + "来电:" + incomingNumber);               ps.close();               break;             default:               break;             }             super.onCallStateChanged(state, incomingNumber);           }          };         tele.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);   }    @Override   public boolean onCreateOptionsMenu(Menu menu) {     // Inflate the menu; this adds items to the action bar if it is present.     getMenuInflater().inflate(R.menu.main, menu);     return true;   }  } 

android短信管理器(SmsManager)实例
需要注册的权限:

   

群发短信功能:

package com.android.xiong.groupsend;  import java.util.ArrayList; import java.util.List;  import android.app.Activity; import android.app.AlertDialog; import android.app.PendingIntent; import android.content.DialogInterface; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.provider.ContactsContract; import android.telephony.SmsManager; import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.ListView; import android.widget.Toast;  public class MainActivity extends Activity {    private Button bt1, bt2;   private EditText ed1, ed2;   private SmsManager sManger;   List sendList = new ArrayList();    @Override   protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_main);     bt1 = (Button) findViewById(R.id.bt1);     bt2 = (Button) findViewById(R.id.bt2);     ed1 = (EditText) findViewById(R.id.ed1);     ed2 = (EditText) findViewById(R.id.ed2);     // 获取SmsManger     sManger = SmsManager.getDefault();     bt1.setOnClickListener(new OnClickListener() {        @Override       public void onClick(View v) {         for (String send : sendList) {           // 创建PendIntent对象           PendingIntent ped = PendingIntent.getActivity(               MainActivity.this, 0, new Intent(), 0);           // 发送信息           sManger.sendTextMessage(send, null, ed2.getText()               .toString(), ped, null);         }         // 提示消息发送完毕         Toast.makeText(MainActivity.this, "短信群发完", Toast.LENGTH_LONG)             .show();       }     });     bt2.setOnClickListener(new OnClickListener() {        @Override       public void onClick(View v) {         // 查看联系人的电话号码         final Cursor cursor = getContentResolver().query(             ContactsContract.CommonDataKinds.Phone.CONTENT_URI,             null, null, null, null);         BaseAdapter adapter = new BaseAdapter() {            @Override           public View getView(int position, View convertView,               ViewGroup parent) {             cursor.moveToPosition(position);             CheckBox rb = new CheckBox(MainActivity.this);             // 获取联系人的电话号码 并去掉中间的中画、空格             String number = cursor                 .getString(                     cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))                 .replace("-", "");             rb.setText(number);             // 如果该号码已经加入发送人名单,默认勾选该号码             if (sendList.contains(number)) {               rb.setChecked(true);             }             return rb;           }            @Override           public long getItemId(int position) {             // TODO Auto-generated method stub             return position;           }            @Override           public Object getItem(int position) {             // TODO Auto-generated method stub             return position;           }            @Override           public int getCount() {             // TODO Auto-generated method stub             return cursor.getCount();           }         };         // 加载list.xml布局文件对应的View         View selectView = getLayoutInflater().inflate(R.layout.item,             null);         final ListView listView = (ListView) selectView             .findViewById(R.id.list1);         listView.setAdapter(adapter);         new AlertDialog.Builder(MainActivity.this).setView(selectView).setPositiveButton("确定", new DialogInterface.OnClickListener() {                      @Override           public void onClick(DialogInterface dialog, int which) {             //清空sendList集合             sendList.clear();             //遍历listView组件的每个列表项             for(int i=0;i       
            
<?xml version="1.0" encoding="utf-8"?>             

更多相关文章

  1. 读取SIM卡信息
  2. android listview 的使用方法
  3. android手机电池管理
  4. android实现接通和挂断电话
  5. 《android常用的API接口调用》
  6. Android消息推送(广播机制)+通知
  7. Android之selector
  8. android 控件状态配置文件
  9. Android(安卓)studio简易计算机

随机推荐

  1. Jenkins+Maven+Gitlab+Nexus持续集成环境
  2. Windows环境下Git配置及使用
  3. Oracle ADDM --dbms_addm执行oracle数据
  4. 【DB笔试面试726】在Oracle中,RAC中的Publ
  5. 【DB笔试面试739】在Oracle中,如何获取集
  6. 【DB笔试面试602】在Oracle中,如何从执行
  7. 【DB笔试面试756】在Oracle的DG中,有哪些
  8. Oracle 定义者权限与调用者权限(AUTHID CU
  9. 【DB笔试面试591】在Oracle中,什么是星型
  10. 【DB笔试面试601】在Oracle中,给出下面执