-
ContentResolver cr=getContentResolver(); Cursor c = cr.query(Contacts.CONTENT_URI,new String[]{Contacts._ID,Contacts.DISPLAY_NAME},null,null,null); if(c!=null){ while(c.moveToNext()){ int id=c.getInt(c.getColumnIndex("_id")); Log.i("info","_id"+id); Log.i("info","name"+c.getString(c.getColumnIndex("display_name"))); Cursor c1=cr.query(Phone.CONTENT_URI,new String[]{Phone.NUMBER,Phone.TYPE},Phone.CONTACT_ID+"="+id,null,null); if(c1!=null){ while(c1.moveToNext()){ int type=c1.getInt(c1.getColumnIndex(Phone.TYPE)); if(type==Phone.TYPE_HOME){ Log.i("家庭电话:"+c1.getString(c1.getColumnIndex(Phone.NUMBER))); }else if(type==Phone.TYPE_MOBILE){ Log.i("手机:"+c1.getString(c1.getColumnIndex(Phone.NUMBER))); } } } } }查看全部
-
public class MainActivity extends Activity { private Button btn; private GestureDetector gd; class myGestureListener extends SimpleOnGestureListener{ @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {//e1:开始的动作;e2:结束的动作。 if(e1.getX()-e2.getX()>50){ Toast.makeText(MainActivity.this, "从右向左滑动!", 1).show(); }else if(e2.getX()-e1.getX()>50){ Toast.makeText(MainActivity.this, "从左向右滑动!", 1).show(); } return super.onFling(e1, e2, velocityX, velocityY); } } @Override protected void onCreate(...) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn=(Button) findViewById(R.id.button1); gd=new GestureDetector(new myGestureListener()); btn.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { gd.onTouchEvent(event); return true; } }); }查看全部
-
SimpleOnGestureListener监听器查看全部
-
OnDoubleTapListener接口的方法查看全部
-
OnGestureListener接口的方法查看全部
-
GestureDetector详解查看全部
-
GestureDetector 手势交互过程 触屏霎那,触发MotionEvent事件 被OnTouchListener监听 在onTouch()中获得MotionEvent对象 GestureDetector转发给MotionEvent对象至OnGestureListener OnGestureListener获得对象,根据该对象封装信息做出合适反馈 MotionEvent 用于封装手势,触摸笔等动作事件 内部封装用于记录横纵轴坐标属性XY GestureDetector 识别各手势 OnGestureListener 手势交互监听接口,其提供多个抽象方法 据GestureDetector手势识别结果调用方法 GestureDetector详解 触摸屏按下,移动,抬起等 重载onTouch或设置setOnTouchListener GestureDetector工作原理 收到用户触摸消息,将消息交给GestureDetector加工 通过设置监听器获得GestureDetector处理后的手势 GestureDetector提供两个监听器 OnGestureListener单击消息 OnDoubleTapListener双击消息 OnGestureListener接口 单击onDown(MotionEvent e) 抬起onSingleTapUp(MotionEvent e) 短按onShowPress(MotionEvent e) 长按onLongPass(MotionEvent e) 滚动onScroll(MotionEvent e1,MotionEvent e2,float distanceX,float distanceY) 滑动onFling(MotionEvent e1,MotionEvent e2,float distanceX,float distanceY) OnDoubleTapListener 双击onDoubleTap(MotionEvent e) 双击按下抬起各触发一次onDoubleTapEvent(MotionEvent e) 单击确认onSingleTapConfirmed(MotionEvent e) SimpleOnGestureListener 继承SimpleOnGestureListener 重载感兴趣手势查看全部
-
GestureDetector 1. GestureDetector有三个监听器 GestureDetector.OnGestureListener、GestureDetector.OnDoubleTapListener、GestureDetector.SimpleOnGestureListener 前两个是接口,分别用来监听单机和双击的手势 GestureDetector.OnGestureListener的六个抽象方法,GestureDetector.OnDoubleTapListener有三个抽象方法(见reference) GestureDetector.SimpleOnGestureListener是继承了前面两个接口的类,所以这9个抽象方法可以重写。 2. 使用 (1)在setOnTouchListener监听器中重写onTouch()方法 //先实例一个GestureDetector对象 mGestureDetector = new GestureDetector(MainActivity.this, new MyOnGestureListener()); //为控件设置OnTouchListener()监听器,重写onTouch()方法,将MotionEvent事件转发给OnGestureListener监听器 image.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { mGestureDetector.onTouchEvent(event); //将MotionEvent转发给MyOnGestureListener监听器 return true; //必须要return true } }); (2)重写OnGestureListener监听器,重写必要的抽象方法 public class MyOnGestureListener extends SimpleOnGestureListener{ public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { }查看全部
-
@权限: android.permission.ACCESS_WIFI_STATE android.permission.CHANGE_WIFI_STATE android.permission.GET_TASKS Ps:public List<ActivityManager.RunningTaskInfo> getRunningTasks (int maxNum):可以得到系统当前正在运行的Task列表,用maxNum限制要获取的数量(最近使用的最先取出)。查看全部
-
case R.id.wifi:<br> WifiManager mWifiManager=(WifiManager) MainActivity.this.getSystemService(WIFI_SERVICE);<br> if(mWifiManager.isWifiEnabled()){<br> mWifiManager.setWifiEnabled(false);<br> Toast."WIFI已经关闭!";<br> }else{<br> mWifiManager.setWifiEnabled(true);<br> Toast."WIFI已经打开!";<br> }<br> break;<br> <br> case R.id.voice:<br> AudioManager mAudioManager = (AudioManager) MainActivity.this.getSystemService(AUDIO_SERVICE);<br> int max=mAudioManager.getStreamMaxVolume(AudioManager.STREAM_SYSTEM);<br> int current=mAudioManager.getStreamVolume(AudioManager.STREAM_RING);<br> Toast."系统最大音量为:"+max+",当前音量是:"+current;<br> break;<br> <br> case R.id.packagename:<br> ActivityManager mActivityManager = (ActivityManager) MainActivity.this.getSystemService(ACTIVITY_SERVICE);<br> String packageName = mActivityManager.getRunningTasks(1).get(0).topActivity.getPackageName();<br> Toast."当前运行的Activity包名:"+packageName;<br> break;<br> }<br> }查看全部
-
onCreate(...) { super.onCreate(savedInstanceState); /*LayoutInflater inflater = (LayoutInflater) MainActivity.this .getSystemService(LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.activity_main, null); setContentView(view);//取得XML里定义的View*/ setContentView(R.layout.activity_main); } public void doClick(View v) { switch (v.getId()) { case R.id.net: if(isNetWorkConnected(MainActivity.this)==true){ Toast."网络已开启!"; }else{ Toast."网络未开启!"; } break; } public boolean isNetWorkConnected(Context context){ if(context!=null){ ConnectivityManager mConnectivityManager=(ConnectivityManager) context.getSystemService(CONNECTIVITY_SERVICE); NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo(); if(mNetworkInfo!=null){ return mNetworkInfo.isAvailable(); } } return false; } 权限:android.permission.ACCESS_NETWORK_STATE Ps1:无法知道是WiFi还是3G,只是知道有无网络。 Ps2:m是member的缩写,代表成员变量。这叫匈牙利命名法。查看全部
-
SystemService 1. 使用LayoutInflater把一个layout转换成view LayoutInflater inflater = (LayoutInflater) MainActivity.this.getSystemService(LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.activity_main, null); setContentView(view); 2. ConnectivityManager(CONNECTIVITY_SERVICE) 直接看develop的reference更直观。 注意:getTypeName()可以得到网络类型字符串 3. WifiManager(WIFI_SERVICE)、AudioManager(AUDIO_SERVICE)、ActivityManager(ACTIVITY_SERVICE) 参考reference 4. 注意 (1)要给application添加权限 (2)需要说明的是,通过getSystemService()返回的一般是manager,然后通过manager就可以操作service的API接口。查看全部
-
判断网络是否连接 public boolean isNetworkConnected(Context context) { // 判断网络的方法 if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context .getSystemService(CONNECTIVITY_SERVICE); NetworkInfo mNetworkInfo = mConnectivityManager .getActiveNetworkInfo();// 获取网络连接状态信息 if (mNetworkInfo != null) {// 如果不为空 return mNetworkInfo.isAvailable();// 返回网络状态属于活动状态 } } return false; } 判断wifi连接状态和改变wifi状态方法 WifiManager wifimanager=(WifiManager) MainActivity.this.getSystemService(WIFI_SERVICE); if(wifimanager.isWifiEnabled()){ wifimanager.setWifiEnabled(false);//关闭wifi方法 Toast.makeText(MainActivity.this, "wifi已经关闭!!", Toast.LENGTH_LONG) .show(); }else{ wifimanager.setWifiEnabled(true); Toast.makeText(MainActivity.this, "wifi已经打开", Toast.LENGTH_LONG) .show();查看全部
-
LOCATION_SERVICE -- LocationManager -- 位置服务,如GPS SEARCH_SERVICE -- SearchManager -- 搜索服务 VEBRATOR_SERVICE -- Vebrator -- 手机震动服务 CONNECTIVITY_SERVICE -- Connectivity -- 网络连接服务 WIFI_SERVICE -- WifiManager -- Wi-Fi服务查看全部
-
常用系统服务: WINDOW_SERVICE -- WindowManager -- 管理打开的窗口程序 LAYOUT_INFLATER_SERVICE -- LayoutInflater -- 取得XML里定义的View ACTIVITY_SERVICE -- ActivityManager -- 管理应用程序的系统状态 POWER_SERVICE -- PowerManger -- 电源服务 ALARM_SERVICE -- AlarmManager -- 闹钟服务 NOTIFICATION_SERVICE -- NotificationManager -- 状态栏服务 KEYGUARD_SERVICE -- KeyguardManager -- 键盘锁服务查看全部
举报
0/150
提交
取消