溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Android中的服務(wù)怎么實(shí)現(xiàn)

發(fā)布時(shí)間:2021-12-18 17:01:54 來源:億速云 閱讀:153 作者:iii 欄目:移動(dòng)開發(fā)

本篇內(nèi)容主要講解“Android中的服務(wù)怎么實(shí)現(xiàn)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Android中的服務(wù)怎么實(shí)現(xiàn)”吧!

說明:這個(gè)例子實(shí)現(xiàn)了Android中常見的許多服務(wù),下面是實(shí)現(xiàn)的截圖

Android中的服務(wù)怎么實(shí)現(xiàn)

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

1.MainActivity--主界面

這個(gè)類主要是實(shí)現(xiàn)用戶所看到的這個(gè)Activity,其中包含了一系列的按鈕,用戶點(diǎn)擊按鈕執(zhí)行相應(yīng)的動(dòng)作,所以在這個(gè)類中主要是對(duì)按鈕的定義和對(duì)按鈕綁定相應(yīng)的監(jiān)聽器,下面是實(shí)現(xiàn)的代碼:

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;   /**這是使用后臺(tái)服務(wù)的學(xué)習(xí)例子*/   public class MainStadyServics extends Activity {           /**參數(shù)設(shè)置*/       Button startServiceButton;// 啟動(dòng)服務(wù)按鈕       Button shutDownServiceButton;// 關(guān)閉服務(wù)按鈕       Button startBindServiceButton;// 啟動(dòng)綁定服務(wù)按鈕       Button sendBroadcast;// 使用廣播       Button notificationButton;// 使用通知功能       Button alarmButton;// 使用鬧鐘       Button handlerButton;// 使用handler       Button asyncButton;// 使用異步加載       Button phoneStateButton;// 查看手機(jī)狀態(tài)       Button callphoneButton;// 撥打電話       Button vibratorButton;// 使用震動(dòng)        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);       }           /**為按鈕添加監(jiān)聽*/       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);       }           /**啟動(dòng)服務(wù)的事件監(jiān)聽*/       public Button.OnClickListener startService = new Button.OnClickListener(){           public void onClick(View view){                   /**單擊按鈕時(shí)啟動(dòng)服務(wù)*/               Intent intent = new Intent(MainStadyServics.this,CountService.class);               startService(intent);               Log.v("MainStadyServics", "start Service");           }       };           /**關(guān)閉服務(wù)*/       public Button.OnClickListener shutdownService = new Button.OnClickListener(){           public void onClick(View view){                   /**單擊按鈕時(shí)啟動(dòng)服務(wù)*/               Intent intent = new Intent(MainStadyServics.this,CountService.class);                   /**退出Activity是,停止服務(wù)*/               stopService(intent);               Log.v("MainStadyServics", "shutDown serveice");           }       };           /**打開綁定服務(wù)的Activity*/       public Button.OnClickListener startBinderService = new Button.OnClickListener(){           public void onClick(View view){                   /**單擊按鈕時(shí)啟動(dòng)服務(wù)*/               Intent intent = new Intent(MainStadyServics.this,UseBrider.class);               startActivity(intent);               Log.v("MainStadyServics", "start Binder Service");           }       };           /**打開廣播學(xué)習(xí)的按鈕*/       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是,停止服務(wù)*/           stopService(intent);       }                     }

2.啟動(dòng)服務(wù)按鈕

這個(gè)類實(shí)現(xiàn)的是***個(gè)按鈕的功能,在這個(gè)類中新開了一個(gè)線程,并每隔一秒打印出一行日志

代碼如下:

package lovefang.stadyService;   /**引入包*/       import android.app.Service;// 服務(wù)的類       import android.os.IBinder;       import android.os.Binder;       import android.content.Intent;       import android.util.Log;   /**計(jì)數(shù)的服務(wù)*/       public class CountService extends Service{               /**創(chuàng)建參數(shù)*/           boolean threadDisable ;           int count;                      public IBinder onBind(Intent intent){               return null;           }           public void onCreate(){               super.onCreate();                   /**創(chuàng)建一個(gè)線程,每秒計(jì)數(shù)器加一,并在控制臺(tái)進(jìn)行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();                   /**服務(wù)停止時(shí),終止計(jì)數(shù)進(jìn)程*/               this.threadDisable = true;           }           public int getConunt(){               return count;           }           class ServiceBinder extends Binder{               public CountService getService(){                   return CountService.this;               }           }       }

3.綁定服務(wù)

服務(wù)有兩種實(shí)現(xiàn)的方法:

(1)startService,啟動(dòng)服務(wù),這時(shí)需要程序員管理服務(wù)的生命周期

(2)bindService,綁定服務(wù),此時(shí)Service與Activity綁定在一起

下面是實(shí)現(xiàn)的代碼:

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的方式啟動(dòng)和結(jié)束服務(wù)*/       public class UseBrider extends Activity {               /**參數(shù)設(shè)置*/           CountService countService;                  @Override           public void onCreate(Bundle savedInstanceState) {               super.onCreate(savedInstanceState);               setContentView(new UseBriderFace(this));               Intent intent = new Intent(UseBrider.this,CountService.class);                   /**進(jìn)入Activity開始服務(wù)*/               bindService(intent, conn, Context.BIND_AUTO_CREATE);                          }           private ServiceConnection conn = new ServiceConnection(){                   /**獲取服務(wù)對(duì)象時(shí)的操作*/                public void onServiceConnected(ComponentName name, IBinder service) {                   // TODO Auto-generated method stub                   countService = ((CountService.ServiceBinder)service).getService();                                  }                   /**無法獲取到服務(wù)對(duì)象時(shí)的操作*/               public void onServiceDisconnected(ComponentName name) {                   // TODO Auto-generated method stub                   countService =null;               }                                         };           protected void onDestroy(){               super.onDestroy();               this.unbindService(conn);               Log.v("MainStadyServics", "out");           }       }

接下來為您介紹發(fā)送廣播Notification通知、Alarm 鬧鐘等服務(wù)的具體內(nèi)容


4.發(fā)送廣播

使用sendBroadcast,向一個(gè)Action發(fā)送廣播,并由相應(yīng)的廣播接收器接收并執(zhí)行相應(yīng)的動(dòng)作

實(shí)現(xiàn)的代碼如下:

       (1)打開廣播服務(wù)

package lovefang.stadyService;   /**引入包*/       import android.view.View;       import android.os.Bundle;       import android.app.Activity;       import android.content.Intent;       import android.widget.Button;   /**使用Broadcast,這是一個(gè)發(fā)送廣播的類*/       public class UseBroadcast extends Activity{               /**創(chuàng)建參數(shù)*/           private Button sendBroadcast;               /**創(chuàng)建Activity*/           public void onCreate(Bundle savedInstanceState){               super.onCreate(savedInstanceState);               setContentView(R.layout.broadcast);// 使用布局文件               getView();               sendBroadcast.setOnClickListener(sendBroadcastClick);// 添加事件監(jiān)聽           }           public void getView(){               sendBroadcast = (Button)findViewById(R.id.sendBroadcast);           }               /**創(chuàng)建事件監(jiān)聽*/           public Button.OnClickListener sendBroadcastClick = new Button.OnClickListener(){               public void onClick(View view){                   Intent intent = new Intent();// 創(chuàng)建意圖                   intent.putExtra("CONTENT",  "This is a Braodcast demo");// 設(shè)置廣播的內(nèi)容                   intent.setAction("lovefang.stadyService");// 設(shè)置廣播的Action                   sendBroadcast(intent);               }           };                  }

        (2 )處理廣播消息

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

5.Notification通知

這個(gè)稱之為通知,顯示在手機(jī)的通知欄,用戶可以清除,可以點(diǎn)擊

實(shí)現(xiàn)的代碼如下:

  1. package lovefang.stadyService;   

  2.    

  3.     import android.content.Intent;   

  4.     import android.os.Bundle;   

  5.     import android.app.Activity;   

  6.     import android.app.Notification;   

  7.     import android.app.NotificationManager;   

  8.     import android.app.PendingIntent;   

  9.     import android.net.Uri;   

  10.     import android.media.RingtoneManager;   

  11.     import android.widget.Button;   

  12.     import android.view.View;   

  13.    

  14. /**使用notification*/   

  15.     public class UseNotification extends Activity {   

  16.             /**創(chuàng)建組件*/   

  17.         private Button textButton;   

  18.         private Button soundButton;// 聲音通知   

  19.         private Button vibrateButton;// 震動(dòng)通知   

  20.         private Button ledButton;// led通知   

  21.         private Button offButton;// 關(guān)閉通知   

  22.         NotificationManager notificationManager;   

  23.             /**創(chuàng)建Activity*/   

  24.         public void onCreate(Bundle savedInstanceState){   

  25.             super.onCreate(savedInstanceState);   

  26.             setContentView(R.layout.notification);   

  27.             getComment();   

  28.             registerComment();   

  29.         }   

  30.             /**獲取對(duì)象*/   

  31.         public void getComment(){   

  32.                 /**獲取Notification對(duì)象*/   

  33.             notificationManager = (NotificationManager)this.getSystemService(NOTIFICATION_SERVICE);   

  34.             textButton = (Button)findViewById(R.id.notificationMessage);   

  35.             soundButton =(Button)findViewById(R.id.notificationSound);   

  36.             vibrateButton = (Button)findViewById(R.id.notificationVibrate);   

  37.             ledButton = (Button)findViewById(R.id.notificationLED);   

  38.             offButton = (Button)findViewById(R.id.offnotification);   

  39.         }   

  40.             /**注冊(cè)對(duì)象*/   

  41.         public void registerComment(){   

  42.             textButton.setOnClickListener(notificationMessage);   

  43.             soundButton.setOnClickListener(notificationSound);   

  44.             vibrateButton.setOnClickListener(notificationVibrate);   

  45.             ledButton.setOnClickListener(notificationLed);   

  46.             offButton.setOnClickListener(notificationOff);   

  47.         }   

  48.         public Button.OnClickListener notificationMessage = new Button.OnClickListener(){   

  49.             public void onClick(View view){   

  50.                 Notification notification = new Notification();// 創(chuàng)建Notification對(duì)象   

  51.                 notification.icon = R.drawable.icon;   

  52.                 notification.tickerText = "This is text notication";// 設(shè)置通知消息   

  53.                     /**單擊通知后的Intent,此例子單擊后還是在當(dāng)前頁面*/   

  54.                 PendingIntent intent = PendingIntent   

  55.                     .getActivity(UseNotification.this,   

  56.                             0, new Intent(UseNotification.this,UseNotification.class)   

  57.                             , 0);   

  58.                     /**設(shè)置通知消息*/   

  59.                 notification.setLatestEventInfo(UseNotification.this   

  60.                         ,"Notification","Content of Notification Demo",intent);   

  61.                     /**執(zhí)行通知*/   

  62.                 notificationManager.notify(0, notification);   

  63.             }   

  64.         };   

  65.         public Button.OnClickListener notificationSound = new Button.OnClickListener(){   

  66.             public void onClick(View view){   

  67.                     /**創(chuàng)建通知對(duì)象*/   

  68.                 Notification notification = new Notification();   

  69.                     /**獲取系統(tǒng)當(dāng)前聲音*/   

  70.                 String ringName = RingtoneManager.getActualDefaultRingtoneUri(   

  71.                         UseNotification.this, RingtoneManager.TYPE_RINGTONE)   

  72.                         .toString();   

  73.                     /**設(shè)置系統(tǒng)當(dāng)前鈴聲為此通知的鈴聲*/   

  74.                 notification.sound = Uri.parse(ringName);   

  75.                     /**執(zhí)行通知*/   

  76.                 notificationManager.notify(0,notification);   

  77.             }   

  78.         };   

  79.             /**震動(dòng)通知*/   

  80.         public Button.OnClickListener notificationVibrate = new Button.OnClickListener(){   

  81.             public void onClick(View view){   

  82.                 Notification notification = new Notification();// 創(chuàng)建Notification對(duì)象   

  83.                 notification.vibrate = new long[] {0, 100, 200, 300};// 設(shè)置通知震動(dòng)模式   

  84.                 notificationManager.notify(0,notification);// 執(zhí)行通知   

  85.             }   

  86.         };   

  87.             /**LED通知*/   

  88.         public Button.OnClickListener notificationLed = new Button.OnClickListener(){   

  89.             public void onClick(View view){   

  90.                 Notification notification = new Notification();// 創(chuàng)建Notification對(duì)象   

  91.                 notification.ledOnMS = 300;// 設(shè)置led開始閃光的時(shí)間   

  92.                 notification.ledOffMS = 1000;// 設(shè)置關(guān)閉時(shí)的閃光時(shí)間   

  93.                 notificationManager.notify(0,notification);// 執(zhí)行通知   

  94.             }   

  95.         };   

  96.             /**關(guān)閉通知*/   

  97.         public Button.OnClickListener notificationOff = new Button.OnClickListener(){   

  98.             public void onClick(View view){   

  99.                 notificationManager.cancel(0);// 關(guān)閉通知   

  100.             }   

  101.         };   

  102.     }

6.Alarm 鬧鐘服務(wù)

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 {           /**創(chuàng)建參數(shù)*/       private Button startAlarm;       private Button shutdownAlarm;       private AlarmManager alarm;                  /**創(chuàng)建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);       }           /**啟動(dòng)鬧鐘*/       public Button.OnClickListener startAlarms = new Button.OnClickListener(){           public void onClick(View view){                   // 設(shè)置10秒后出發(fā)鬧鐘               Calendar calendar = Calendar.getInstance();               calendar.setTimeInMillis(System.currentTimeMillis());// 設(shè)置calendar的時(shí)間               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);           }       };   }

下頁將為您介紹獲取手機(jī)的狀態(tài)、Vibrator 震動(dòng)功能等服務(wù)的具體內(nèi)容

7.獲取手機(jī)的狀態(tài)

這個(gè)功能實(shí)現(xiàn)的是獲取用戶手機(jī)的一些定義的信息

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;   /**獲取手機(jī)的狀態(tài)*/       public class UsePhoneState extends Activity{               /**創(chuàng)建參數(shù)*/           private ContentResolver cr;           private Button getStateButton;// 用來獲取用戶的手機(jī)狀態(tài)               /**創(chuàng)建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對(duì)象*/                   TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Service.TELEPHONY_SERVICE);                       /**獲取電信網(wǎng)絡(luò)級(jí)別*/                   String teleCode = telephonyManager.getNetworkCountryIso();                       /**獲取電信網(wǎng)絡(luò)公司代碼*/                   String teleComCode = telephonyManager.getNetworkOperator();                       /**獲取電信網(wǎng)絡(luò)公司名稱*/                   String teleComName = telephonyManager.getNetworkOperatorName();                       /**獲取行動(dòng)通信類型*/                   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;                   }                       /**獲取網(wǎng)絡(luò)類型*/                   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;                   }                                          /**獲取漫游狀態(tài)*/                   boolean roamStatusCode = telephonyManager.isNetworkRoaming();                   String roamStatus = "NOT ROAMINF";                   if(roamStatusCode){                       roamStatus = "ROAMING";                   }                                          /**獲取手機(jī)***標(biāo)識(shí)*/                   String imei = telephonyManager.getDeviceId();                       /**獲取手機(jī)IMEI SV*/                   String imeiSV = telephonyManager.getDeviceSoftwareVersion();                       /**獲取手機(jī)IMSI*/                   String imsi = telephonyManager.getSubscriberId();                                          /**藍(lán)牙服務(wù)*/                   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";                   }                                          /**數(shù)據(jù)漫游模式是否打開*/                   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 震動(dòng)功能

實(shí)現(xiàn)對(duì)手機(jī)震動(dòng)的管理

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;   /**如何實(shí)現(xiàn)手機(jī)的震動(dòng)提示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);           }               /**震動(dòng)一次*/           public Button.OnClickListener vibrator_1 = new Button.OnClickListener(){               public void onClick(View view){                       /**long參數(shù)數(shù)組里大參數(shù)的含義*/                       /*****個(gè)參數(shù)表示等待100毫秒后開始震動(dòng)*/                       /**第二個(gè)參數(shù)表示震動(dòng)100毫秒后停止震動(dòng)*/                   vibrator.vibrate(new long[]{100,100}, 0);               }           };               /**震動(dòng)兩次*/           public Button.OnClickListener vibrator_2 = new Button.OnClickListener(){               public void onClick(View view){                   vibrator.vibrate(new long[]{1000,3000,1000,3000}, 0);               }           };               /**震動(dòng)三次*/           public Button.OnClickListener vibrator_3 = new Button.OnClickListener(){               public void onClick(View view){                   vibrator.vibrate(new long[]{1000,1000,1000,2000,1000,300}, 0);               }           };       }

到此,相信大家對(duì)“Android中的服務(wù)怎么實(shí)現(xiàn)”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI