Android常用的一些服務demo源碼

今天在網站看了一系列例子。太棒了。。。

我收藏了哦。

實現了Android中常見的許多服務,下面是實現的截圖


接下來,以源代碼的方式分析這個例子


1.MainActivity--主界面

這個類主要是實現用戶所看到的這個Activity,其中包含了一系列的按鈕,用戶點擊按鈕執行相應的動作,所以在這個類中主要是對按鈕的定義和對按鈕綁定相應的監聽器,下面是實現的代碼:

[java] view plaincopy

    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.啓動服務按鈕

這個類實現的是第一個按鈕的功能,在這個類中新開了一個線程,並每隔一秒打印出一行日誌

代碼如下:

[java] view plaincopy

    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綁定在一起

下面是實現的代碼:

[java] view plaincopy

    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發送廣播,並由相應的廣播接收器接收並執行相應的動作

實現的代碼如下:

4.1 打開廣播服務

[java] view plaincopy

    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);  
                }  
            };  
              
        }  



4.2 處理廣播消息

[java] view plaincopy

    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

這個稱之爲通知,顯示在手機的通知欄,用戶可以清除,可以點擊

實現的代碼如下:

[java] view plaincopy

    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

鬧鐘服務

[java] view plaincopy

    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);  
            }  
        };  
    }  


7.獲取手機的狀態

這個功能實現的是獲取用戶手機的一些定義的信息

[java] view plaincopy

    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";  
                    }  
                      
                        /**http://www.jfong.cn/  -獲取手機唯一標識*/  
                    String imei = telephonyManager.getDeviceId();  
                        /**獲取手機IMEI SV*/  
                    String imeiSV = telephonyManager.getDeviceSoftwareVersion();  
                        /**獲取手機IMSI*/  
                    String imsi = telephonyManager.getSubscriberId();  
                      
                        /**http://www.qi788.com/  -藍牙服務*/  
                    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

震動功能,實現對手機震動的管理

[java] view plaincopy

    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);  
                }  
            };  
        } 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章