Android应用框架层Manager套路
TelephonyManager
定义成员变量
private TelephonyManager tm;
得到第二层的xxxManager,由context.getSystemService()
tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
具体操作的方法
tm.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);//对电话的操作
第二层如有
ActivityManager,WindowManager,NotificationManager,PackageManager,TelephonyManager,ResourceManager,LocationManager
*监听电话的3个权限
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
WindowManager
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
int width = wm.getDefaultDisplay().getWidth();
int height = wm.getDefaultDisplay().getHeight();
System.out.println(width +" Win and "+height);
NotificationManager
android4.0以上
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification notification = new Notification.Builder(this)
.setContentTitle("我是标题")
.setContentText("我是文本")
.setSmallIcon(R.drawable.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher))
.build();
//显示一个通知
nm.notify(0, notification);
----------------------------------------------
android4.0以下
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.ic_launcher, "有新的消息到来了", System.currentTimeMillis());
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel://110"));
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0);
//设置通知的点击事件
notification.setLatestEventInfo(this, "我是标题", "我是文本", contentIntent);
nm.notify(0, notification);