Android中所有的服务使用

希望通过这篇一个Demo学完Android中所有的服务对对广大读者有所帮助。

说明:这个例子实现了Android中常见的许多服务,下面是实现的截图



接下来,以源代码的方式分析这个例子

1.MainActivity--主界面

这个类主要是实现用户所看到的这个Activity,其中包含了一系列的按钮,用户点击按钮执行相应的动作,所以在这个类中主要是对按钮的定义和对按钮绑定相应的监听器,下面是实现的代码:

    package lovefang.stadyService;   
       
    import android.app.Activity;   
    import android.os.Bundle;   
    import android.widget.Button;   
    import android.view.View;   
    import android.content.Intent;   
    import android.util.Log;   
    /**这是使用后台服务的学习例子*/   
    public class MainStadyServics extends Activity {   
            /**参数设置*/   
        Button startServiceButton;// 启动服务按钮   
        Button shutDownServiceButton;// 关闭服务按钮   
        Button startBindServiceButton;// 启动绑定服务按钮   
        Button sendBroadcast;// 使用广播   
        Button notificationButton;// 使用通知功能   
        Button alarmButton;// 使用闹钟   
        Button handlerButton;// 使用handler   
        Button asyncButton;// 使用异步加载   
        Button phoneStateButton;// 查看手机状态   
        Button callphoneButton;// 拨打电话   
        Button vibratorButton;// 使用震动    
        CountService countService;   
           
        @Override   
        public void onCreate(Bundle savedInstanceState) {   
            super.onCreate(savedInstanceState);   
            Log.v("MainStadyServics", "setContentView");   
            setContentView(R.layout.main);   
            getWidget();   
            regiestListener();   
        }   
            /**获得组件*/   
        public void getWidget(){   
            startServiceButton = (Button)findViewById(R.id.startServerButton);   
            startBindServiceButton = (Button)findViewById(R.id.startBindServerButton);   
            shutDownServiceButton = (Button)findViewById(R.id.sutdownServerButton);   
            sendBroadcast = (Button)findViewById(R.id.sendBroadcast);   
            notificationButton = (Button)findViewById(R.id.notification);   
            alarmButton = (Button)findViewById(R.id.alarm);   
            handlerButton = (Button)findViewById(R.id.handler);   
            asyncButton = (Button)findViewById(R.id.async);   
            phoneStateButton = (Button) findViewById(R.id.phonestate);   
            callphoneButton = (Button) findViewById(R.id.callphone);   
            vibratorButton = (Button) findViewById(R.id.vibrator);   
        }   
            /**为按钮添加监听*/   
        public void regiestListener(){   
            startServiceButton.setOnClickListener(startService);   
            shutDownServiceButton.setOnClickListener(shutdownService);   
            startBindServiceButton.setOnClickListener(startBinderService);   
            sendBroadcast.setOnClickListener(broadcastReceiver);   
            notificationButton.setOnClickListener(notification);   
            alarmButton.setOnClickListener(startAlarm);   
            handlerButton.setOnClickListener(handler);   
            asyncButton.setOnClickListener(async);   
            phoneStateButton.setOnClickListener(phonestate);   
            callphoneButton.setOnClickListener(callphoneEvent);   
            vibratorButton.setOnClickListener(vibrator);   
        }   
            /**启动服务的事件监听*/   
        public Button.OnClickListener startService = new Button.OnClickListener(){   
            public void onClick(View view){   
                    /**单击按钮时启动服务*/   
                Intent intent = new Intent(MainStadyServics.this,CountService.class);   
                startService(intent);   
                Log.v("MainStadyServics", "start Service");   
            }   
        };   
            /**关闭服务*/   
        public Button.OnClickListener shutdownService = new Button.OnClickListener(){   
            public void onClick(View view){   
                    /**单击按钮时启动服务*/   
                Intent intent = new Intent(MainStadyServics.this,CountService.class);   
                    /**退出Activity是,停止服务*/   
                stopService(intent);   
                Log.v("MainStadyServics", "shutDown serveice");   
            }   
        };   
            /**打开绑定服务的Activity*/   
        public Button.OnClickListener startBinderService = new Button.OnClickListener(){   
            public void onClick(View view){   
                    /**单击按钮时启动服务*/   
                Intent intent = new Intent(MainStadyServics.this,UseBrider.class);   
                startActivity(intent);   
                Log.v("MainStadyServics", "start Binder Service");   
            }   
        };   
            /**打开广播学习的按钮*/   
        public Button.OnClickListener broadcastReceiver = new Button.OnClickListener(){   
            public void onClick(View view){   
                Intent intent = new Intent(MainStadyServics.this,UseBroadcast.class);   
                startActivity(intent);   
                Log.v("MainStadyServics","start broadcast");   
            }   
        };   
            /**打开通知*/   
        public Button.OnClickListener notification = new Button.OnClickListener(){   
            public void onClick(View view){   
                Intent intent = new Intent(MainStadyServics.this, UseNotification.class);   
                startActivity(intent);   
                Log.v("MainStadyService ","start Notification");   
                   
            }   
        };   
            /**使用闹钟*/   
        public Button.OnClickListener startAlarm = new Button.OnClickListener(){   
            public void onClick(View view){   
                Intent intent = new Intent(MainStadyServics.this, UseAlarmManager.class);   
                startActivity(intent);   
                Log.v("MainStadyService ","start alarm");   
                   
            }   
        };   
        public Button.OnClickListener handler= new Button.OnClickListener(){   
            public void onClick(View view){   
                Intent intent = new Intent(MainStadyServics.this, UseHandleMessage.class);   
                startActivity(intent);   
                Log.v("MainStadyService ","start handle");   
            }   
        };   
        public Button.OnClickListener async= new Button.OnClickListener(){   
            public void onClick(View view){   
                Intent intent = new Intent(MainStadyServics.this, UseAsyncTask.class);   
                startActivity(intent);   
                Log.v("MainStadyService ","start handle");   
            }   
        };   
        public Button.OnClickListener phonestate= new Button.OnClickListener(){   
            public void onClick(View view){   
                Intent intent = new Intent(MainStadyServics.this, UsePhoneState.class);   
                startActivity(intent);   
                Log.v("MainStadyService ","start phonestate");   
            }   
        };   
        public Button.OnClickListener callphoneEvent= new Button.OnClickListener(){   
            public void onClick(View view){   
                Intent intent = new Intent(MainStadyServics.this, UseActionCall.class);   
                startActivity(intent);   
                Log.v("MainStadyService ","start callphone");   
            }   
        };   
        public Button.OnClickListener vibrator= new Button.OnClickListener(){   
            public void onClick(View view){   
                Intent intent = new Intent(MainStadyServics.this, UseVibrator.class);   
                startActivity(intent);   
                Log.v("MainStadyService ","start callphone");   
            }   
        };   
            /***/   
        protected void onDestroy(){   
            super.onDestroy();   
            Intent intent = new Intent(MainStadyServics.this,CountService.class);   
                /**退出Activity是,停止服务*/   
            stopService(intent);   
        }   
               
           
    }   

2.启动服务按钮

这个类实现的是第一个按钮的功能,在这个类中新开了一个线程,并每隔一秒打印出一行日志

代码如下:

    package lovefang.stadyService;   
    /**引入包*/   
        import android.app.Service;// 服务的类   
        import android.os.IBinder;   
        import android.os.Binder;   
        import android.content.Intent;   
        import android.util.Log;   
    /**计数的服务*/   
        public class CountService extends Service{   
                /**创建参数*/   
            boolean threadDisable ;   
            int count;   
               
            public IBinder onBind(Intent intent){   
                return null;   
            }   
            public void onCreate(){   
                super.onCreate();   
                    /**创建一个线程,每秒计数器加一,并在控制台进行Log输出*/   
                new Thread(new Runnable(){   
                    public void run(){   
                        while(!threadDisable){   
                            try{   
                                Thread.sleep(1000);   
                            }catch(InterruptedException e){   
                                   
                            }   
                            count++;   
                            Log.v("CountService","Count is"+count);   
                        }   
                    }   
                }).start();   
            }   
            public void onDestroy(){   
                super.onDestroy();   
                    /**服务停止时,终止计数进程*/   
                this.threadDisable = true;   
            }   
            public int getConunt(){   
                return count;   
            }   
            class ServiceBinder extends Binder{   
                public CountService getService(){   
                    return CountService.this;   
                }   
            }   
        }   

3.绑定服务

服务有两种实现的方法:

(1)startService,启动服务,这时需要程序员管理服务的生命周期

(2)bindService,绑定服务,此时Service与Activity绑定在一起

下面是实现的代码:

    package lovefang.stadyService;   
    /**引入包*/   
        import android.app.Activity;   
        import android.content.ComponentName;   
        import android.content.Context;   
        import android.content.Intent;   
        import android.content.ServiceConnection;   
        import android.os.Bundle;   
        import android.os.IBinder;   
        import android.util.Log;   
       
    /**通过bindService和unBindSerivce的方式启动和结束服务*/   
        public class UseBrider extends Activity {   
                /**参数设置*/   
            CountService countService;   
           
            @Override   
            public void onCreate(Bundle savedInstanceState) {   
                super.onCreate(savedInstanceState);   
                setContentView(new UseBriderFace(this));   
                Intent intent = new Intent(UseBrider.this,CountService.class);   
                    /**进入Activity开始服务*/   
                bindService(intent, conn, Context.BIND_AUTO_CREATE);   
                   
            }   
            private ServiceConnection conn = new ServiceConnection(){   
                    /**获取服务对象时的操作*/    
                public void onServiceConnected(ComponentName name, IBinder service) {   
                    // TODO Auto-generated method stub   
                    countService = ((CountService.ServiceBinder)service).getService();   
                       
                }   
                    /**无法获取到服务对象时的操作*/   
                public void onServiceDisconnected(ComponentName name) {   
                    // TODO Auto-generated method stub   
                    countService =null;   
                }   
                   
                   
            };   
            protected void onDestroy(){   
                super.onDestroy();   
                this.unbindService(conn);   
                Log.v("MainStadyServics", "out");   
            }   
        }   

4.发送广播

使用sendBroadcast,向一个Action发送广播,并由相应的广播接收器接收并执行相应的动作

实现的代码如下:

   (1)打开广播服务

    package lovefang.stadyService;   
    /**引入包*/   
        import android.view.View;   
        import android.os.Bundle;   
        import android.app.Activity;   
        import android.content.Intent;   
        import android.widget.Button;   
    /**使用Broadcast,这是一个发送广播的类*/   
        public class UseBroadcast extends Activity{   
                /**创建参数*/   
            private Button sendBroadcast;   
                /**创建Activity*/   
            public void onCreate(Bundle savedInstanceState){   
                super.onCreate(savedInstanceState);   
                setContentView(R.layout.broadcast);// 使用布局文件   
                getView();   
                sendBroadcast.setOnClickListener(sendBroadcastClick);// 添加事件监听   
            }   
            public void getView(){   
                sendBroadcast = (Button)findViewById(R.id.sendBroadcast);   
            }   
                /**创建事件监听*/   
            public Button.OnClickListener sendBroadcastClick = new Button.OnClickListener(){   
                public void onClick(View view){   
                    Intent intent = new Intent();// 创建意图   
                    intent.putExtra("CONTENT",  "This is a Braodcast demo");// 设置广播的内容   
                    intent.setAction("lovefang.stadyService");// 设置广播的Action   
                    sendBroadcast(intent);   
                }   
            };   
               
        }   

   (2 )处理广播消息

    package lovefang.stadyService;   
    /***/   
        import android.content.BroadcastReceiver;   
        import android.content.Context;   
        import android.content.Intent;   
        import android.util.Log;   
    /**这是一个接收广播的类*/   
        public class UseBroadcastReceiver extends BroadcastReceiver{   
            public void onReceive(Context context, Intent intent){   
                Log.v("UseBroadcastReceiver", "I get a message");   
            }   
        }   

5.Notification通知 

这个称之为通知,显示在手机的通知栏,用户可以清除,可以点击

实现的代码如下:

package lovefang.stadyService;   
   
    import android.content.Intent;   
    import android.os.Bundle;   
    import android.app.Activity;   
    import android.app.Notification;   
    import android.app.NotificationManager;   
    import android.app.PendingIntent;   
    import android.net.Uri;   
    import android.media.RingtoneManager;   
    import android.widget.Button;   
    import android.view.View;   
   
/**使用notification*/   
    public class UseNotification extends Activity {   
            /**创建组件*/   
        private Button textButton;   
        private Button soundButton;// 声音通知   
        private Button vibrateButton;// 震动通知   
        private Button ledButton;// led通知   
        private Button offButton;// 关闭通知   
        NotificationManager notificationManager;   
            /**创建Activity*/   
        public void onCreate(Bundle savedInstanceState){   
            super.onCreate(savedInstanceState);   
            setContentView(R.layout.notification);   
            getComment();   
            registerComment();   
        }   
            /**获取对象*/   
        public void getComment(){   
                /**获取Notification对象*/   
            notificationManager = (NotificationManager)this.getSystemService(NOTIFICATION_SERVICE);   
            textButton = (Button)findViewById(R.id.notificationMessage);   
            soundButton =(Button)findViewById(R.id.notificationSound);   
            vibrateButton = (Button)findViewById(R.id.notificationVibrate);   
            ledButton = (Button)findViewById(R.id.notificationLED);   
            offButton = (Button)findViewById(R.id.offnotification);   
        }   
            /**注册对象*/   
        public void registerComment(){   
            textButton.setOnClickListener(notificationMessage);   
            soundButton.setOnClickListener(notificationSound);   
            vibrateButton.setOnClickListener(notificationVibrate);   
            ledButton.setOnClickListener(notificationLed);   
            offButton.setOnClickListener(notificationOff);   
        }   
        public Button.OnClickListener notificationMessage = new Button.OnClickListener(){   
            public void onClick(View view){   
                Notification notification = new Notification();// 创建Notification对象   
                notification.icon = R.drawable.icon;   
                notification.tickerText = "This is text notication";// 设置通知消息   
                    /**单击通知后的Intent,此例子单击后还是在当前页面*/   
                PendingIntent intent = PendingIntent   
                    .getActivity(UseNotification.this,   
                            0, new Intent(UseNotification.this,UseNotification.class)   
                            , 0);   
                    /**设置通知消息*/   
                notification.setLatestEventInfo(UseNotification.this   
                        ,"Notification","Content of Notification Demo",intent);   
                    /**执行通知*/   
                notificationManager.notify(0, notification);   
            }   
        };   
        public Button.OnClickListener notificationSound = new Button.OnClickListener(){   
            public void onClick(View view){   
                    /**创建通知对象*/   
                Notification notification = new Notification();   
                    /**获取系统当前声音*/   
                String ringName = RingtoneManager.getActualDefaultRingtoneUri(   
                        UseNotification.this, RingtoneManager.TYPE_RINGTONE)   
                        .toString();   
                    /**设置系统当前铃声为此通知的铃声*/   
                notification.sound = Uri.parse(ringName);   
                    /**执行通知*/   
                notificationManager.notify(0,notification);   
            }   
        };   
            /**震动通知*/   
        public Button.OnClickListener notificationVibrate = new Button.OnClickListener(){   
            public void onClick(View view){   
                Notification notification = new Notification();// 创建Notification对象   
                notification.vibrate = new long[] {0, 100, 200, 300};// 设置通知震动模式   
                notificationManager.notify(0,notification);// 执行通知   
            }   
        };   
            /**LED通知*/   
        public Button.OnClickListener notificationLed = new Button.OnClickListener(){   
            public void onClick(View view){   
                Notification notification = new Notification();// 创建Notification对象   
                notification.ledOnMS = 300;// 设置led开始闪光的时间   
                notification.ledOffMS = 1000;// 设置关闭时的闪光时间   
                notificationManager.notify(0,notification);// 执行通知   
            }   
        };   
            /**关闭通知*/   
        public Button.OnClickListener notificationOff = new Button.OnClickListener(){   
            public void onClick(View view){   
                notificationManager.cancel(0);// 关闭通知   
            }   
        };   
    } 

6.Alarm 闹钟服务

    package lovefang.stadyService;   
       
    import android.app.Activity;   
    import android.os.Bundle;   
    import android.widget.Button;   
    import android.view.View;   
    import android.app.AlarmManager;   
       
    import java.util.Calendar;   
       
    public class UseAlarmManager extends Activity {   
            /**创建参数*/   
        private Button startAlarm;   
        private Button shutdownAlarm;   
        private AlarmManager alarm;   
           
            /**创建Activity*/   
        public void onCreate(Bundle savedInstanceState){   
            super.onCreate(savedInstanceState);   
            setContentView(R.layout.usealarmmanager);   
            getWidget();   
        }   
        public void getWidget(){   
            startAlarm = (Button)findViewById(R.id.startAlarm);   
            shutdownAlarm = (Button)findViewById(R.id.shutDowntAlarm);   
            alarm = (AlarmManager)getSystemService(ALARM_SERVICE);// 获取AlarmManager   
        }   
        public void registerWidget(){   
            startAlarm.setOnClickListener(startAlarms);   
            shutdownAlarm.setOnClickListener(shutdownAlarms);   
        }   
            /**启动闹钟*/   
        public Button.OnClickListener startAlarms = new Button.OnClickListener(){   
            public void onClick(View view){   
                    // 设置10秒后出发闹钟   
                Calendar calendar = Calendar.getInstance();   
                calendar.setTimeInMillis(System.currentTimeMillis());// 设置calendar的时间   
                calendar.add(Calendar.SECOND, 10);   
                   
                alarm.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), null);   
            }   
        };   
        public Button.OnClickListener shutdownAlarms = new Button.OnClickListener(){   
            public void onClick(View view){   
                alarm.cancel(null);   
            }   
        };   
    }   

接下来将为您介绍 获取手机的状态、Vibrator 震动功能等服务的具体内容:

7.获取手机的状态

这个功能实现的是获取用户手机的一些定义的信息

    package lovefang.stadyService;   
    /**引入包*/   
        import android.os.Bundle;   
        import android.app.Activity;   
        import android.app.Service;   
        import android.view.View;   
        import android.widget.Button;   
        import android.widget.TextView;   
        import android.content.ContentResolver;//This class provides applications access to the content model.   
        import android.telephony.TelephonyManager;   
        import android.util.Log;   
    /**获取手机的状态*/   
        public class UsePhoneState extends Activity{   
                /**创建参数*/   
            private ContentResolver cr;   
            private Button getStateButton;// 用来获取用户的手机状态   
                /**创建Activity*/   
            public void onCreate(Bundle savedInstanceState){   
                super.onCreate(savedInstanceState);   
                setContentView(R.layout.usephonestate);   
                   
                cr = getContentResolver();   
                Log.v("UsePhonestate","cr = getContentResolver()");   
                Log.v("UsePhonestate","setContentView");   
                getStateButton = (Button) findViewById(R.id.button_getphonestate);   
                Log.v("UsePhonestate","getStateButton");   
                getStateButton.setOnClickListener(getState);   
                Log.v("UsePhonestate","getStateButton.setOnClickListener");   
            }   
            private Button.OnClickListener getState = new Button.OnClickListener(){   
                public void onClick(View view){   
                        /**获得TelephonyManager对象*/   
                    TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Service.TELEPHONY_SERVICE);   
                        /**获取电信网络级别*/   
                    String teleCode = telephonyManager.getNetworkCountryIso();   
                        /**获取电信网络公司代码*/   
                    String teleComCode = telephonyManager.getNetworkOperator();   
                        /**获取电信网络公司名称*/   
                    String teleComName = telephonyManager.getNetworkOperatorName();   
                        /**获取行动通信类型*/   
                    int TypeCode = telephonyManager.getPhoneType();   
                       
                    String type = "";   
                       
                    switch(TypeCode){   
                        case TelephonyManager.PHONE_TYPE_NONE:   
                            type = "PHONE_TYPE_NONE";   
                            break;   
                        case TelephonyManager.PHONE_TYPE_GSM:   
                            type = "PHONE_TYPE_GSM";   
                            break;   
                        case TelephonyManager.PHONE_TYPE_CDMA:   
                            type = "PHONE_TYPE_CDMA";   
                            break;   
                    }   
                        /**获取网络类型*/   
                    int netTypeCode = telephonyManager.getNetworkType();   
                    String netType = "NETWORK_TYPE_UNKNOW";   
                    switch(netTypeCode){   
                        case TelephonyManager.NETWORK_TYPE_1xRTT:   
                            netType = "NETWORK_TYPE_1xRTT";   
                            break;   
                        case TelephonyManager.NETWORK_TYPE_CDMA:   
                            netType = "NETWORK_TYPE_CDMA";   
                            break;   
                        case TelephonyManager.NETWORK_TYPE_EDGE:   
                            netType = "NETWORK_TYPE_EDGE";   
                            break;   
                        case TelephonyManager.NETWORK_TYPE_EVDO_0:   
                            netType = "NETWORK_TYPE_EVDO_0";   
                            break;   
                        case TelephonyManager.NETWORK_TYPE_EVDO_A:   
                            netType = "NETWORK_TYPE_EVDO_A";   
                            break;   
                        case TelephonyManager.NETWORK_TYPE_GPRS:   
                            netType = "NETWORK_TYPE_GPRS";   
                            break;   
                        case TelephonyManager.NETWORK_TYPE_HSDPA:   
                            netType = "NETWORK_TYPE_HSDPA";   
                            break;   
                        case TelephonyManager.NETWORK_TYPE_HSPA:   
                            netType = "NETWORK_TYPE_HSPA";   
                            break;   
                        case TelephonyManager.NETWORK_TYPE_HSUPA:   
                            netType = "NETWORK_TYPE_HSUPA";   
                            break;   
                        case TelephonyManager.NETWORK_TYPE_IDEN:   
                            netType = "NETWORK_TYPE_IDEN";   
                            break;   
                        case TelephonyManager.NETWORK_TYPE_UMTS:   
                            netType = "NETWORK_TYPE_UMTS";   
                            break;   
                        default:   
                            break;   
                    }   
                       
                        /**获取漫游状态*/   
                    boolean roamStatusCode = telephonyManager.isNetworkRoaming();   
                    String roamStatus = "NOT ROAMINF";   
                    if(roamStatusCode){   
                        roamStatus = "ROAMING";   
                    }   
                       
                        /**获取手机唯一标识*/   
                    String imei = telephonyManager.getDeviceId();   
                        /**获取手机IMEI SV*/   
                    String imeiSV = telephonyManager.getDeviceSoftwareVersion();   
                        /**获取手机IMSI*/   
                    String imsi = telephonyManager.getSubscriberId();   
                       
                        /**蓝牙服务*/   
                    String statusCode = android.provider.Settings.System.getString(cr,   
                            android.provider.Settings.System.BLUETOOTH_ON);   
                    String bulettothStatus = "";   
                    if(statusCode.equals("1")){   
                        bulettothStatus = "ENABLE";   
                    }else{   
                        bulettothStatus = "DISABLE";   
                    }   
                       
                        /**飞行模式是否打开*/   
                    statusCode = android.provider.Settings.System.getString(cr,   
                            android.provider.Settings.System.AIRPLANE_MODE_ON);   
                       
                    String AirplaneStatus = "";   
                    if(statusCode.equals("1")){   
                        AirplaneStatus = "ENABLE";   
                    }else{   
                        AirplaneStatus = "DISABLE";   
                    }   
                       
                        /**数据漫游模式是否打开*/   
                    statusCode = android.provider.Settings.System.getString(cr,   
                            android.provider.Settings.System.DATA_ROAMING);   
                    String dataRoamStatus = "";   
                    if(statusCode.equals("1")){   
                        dataRoamStatus = "ENABLE";   
                    }else{   
                        dataRoamStatus = "DISABLE";   
                    }   
                    TextView txt = (TextView) findViewById(R.id.text_showphonestate);   
                    StringBuilder sb = new StringBuilder();   
                    sb.append("teleCode: "+teleCode+"\n");   
                    sb.append("teleComCode: "+teleComCode+"\n");   
                    sb.append("teleComName: "+teleComName+"\n");   
                    sb.append("type: "+type+"\n");   
                    sb.append("netType: "+netType+"\n");   
                    sb.append("roamStatus: "+roamStatus+"\n");   
                    sb.append("imei: "+imei+"\n");   
                    sb.append("imeiSV: "+imeiSV+"\n");   
                    sb.append("imsi: "+imsi+"\n");   
                    sb.append("bulettothStatus: "+bulettothStatus+"\n");   
                    sb.append("AirplaneStatus: "+AirplaneStatus+"\n");   
                    sb.append("dataRoamStatus: "+dataRoamStatus+"\n");   
                       
                    txt.setText(sb.toString());   
                }   
            };   
        }   

8.Vibrator 震动功能

实现对手机震动的管理

    package lovefang.stadyService;   
    /***/   
        import android.os.Bundle;   
        import android.os.Vibrator;   
        import android.app.Activity;   
        import android.view.View;   
        import android.content.Context;   
        import android.widget.Button;   
    /**如何实现手机的震动提示Vibrator*/   
        public class UseVibrator extends Activity{   
                /***/   
            private Button vibrator_1_Button;   
            private Button vibrator_2_Button;   
            private Button vibrator_3_Button;   
            private Vibrator vibrator;   
                /***/   
            public void onCreate(Bundle savedInstanceState){   
                super.onCreate(savedInstanceState);   
                setContentView(R.layout.use_vibrator);   
                vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);   
                getWidget();   
                registerWidget();   
            }   
               
            public void getWidget(){   
                vibrator_1_Button = (Button) findViewById(R.id.button_vibrator_1);   
                vibrator_2_Button = (Button) findViewById(R.id.button_vibrator_2);   
                vibrator_3_Button = (Button) findViewById(R.id.button_vibrator_3);   
            }   
               
            public void registerWidget(){   
                vibrator_1_Button.setOnClickListener(vibrator_1);   
                vibrator_2_Button.setOnClickListener(vibrator_2);   
                vibrator_3_Button.setOnClickListener(vibrator_3);   
            }   
                /**震动一次*/   
            public Button.OnClickListener vibrator_1 = new Button.OnClickListener(){   
                public void onClick(View view){   
                        /**long参数数组里大参数的含义*/   
                        /**第一个参数表示等待100毫秒后开始震动*/   
                        /**第二个参数表示震动100毫秒后停止震动*/   
                    vibrator.vibrate(new long[]{100,100}, 0);   
                }   
            };   
                /**震动两次*/   
            public Button.OnClickListener vibrator_2 = new Button.OnClickListener(){   
                public void onClick(View view){   
                    vibrator.vibrate(new long[]{1000,3000,1000,3000}, 0);   
                }   
            };   
                /**震动三次*/   
            public Button.OnClickListener vibrator_3 = new Button.OnClickListener(){   
                public void onClick(View view){   
                    vibrator.vibrate(new long[]{1000,1000,1000,2000,1000,300}, 0);   
                }   
            };   
        }  

下面给出源代码的下载地址(注:第三方网站下载资源需注册):

http://download.csdn.net/detail/dlutbrucezhang/5061544

希望通过这篇一个Demo学完Android中所有的服务对对广大读者有所帮助。









  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值