精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

PhoneGap for Android平臺源碼示例

移動開發 Android
前一段,介紹了PhoneGap開源項目用于多平臺的學習在《PhoneGap讓你的應用兼容Android、iOS、WP7 》一文中講到了,今天一起來看下PhoneGap for Android平臺的代碼吧, 對于初入Android開發的網友可以很好的了解代碼規范,同時很多成熟的可復用代碼希望對大家有幫助。

PhoneGap內部數據傳遞使用了JSON,比如PhoneGap中指南針部分源碼如下:

  1. public class CompassListener extends Plugin implements SensorEventListener { 
  2.  
  3.  public static int STOPPED = 0
  4.  public static int STARTING = 1
  5.     public static int RUNNING = 2
  6.     public static int ERROR_FAILED_TO_START = 3
  7.     
  8.     public long TIMEOUT = 30000;  // Timeout in msec to shut off listener 
  9.   
  10.     int status;       // status of listener 
  11.     float heading;      // most recent heading value 
  12.     long timeStamp;      // time of most recent value 
  13.     long lastAccessTime;    // time the value was last retrieved 
  14.   
  15.     private SensorManager sensorManager;// Sensor manager 
  16.     Sensor mSensor;      // Compass sensor returned by sensor manager 
  17.   
  18.  /** 
  19.   * Constructor. 
  20.   */ 
  21.  public CompassListener() { 
  22.         this.timeStamp = 0
  23.         this.setStatus(CompassListener.STOPPED); 
  24.  } 
  25.  
  26.  /** 
  27.   * Sets the context of the Command. This can then be used to do things like 
  28.   * get file paths associated with the Activity. 
  29.   * 
  30.   * @param ctx The context of the main Activity. 
  31.   */ 
  32.  public void setContext(PhonegapActivity ctx) { 
  33.   super.setContext(ctx); 
  34.         this.sensorManager = (SensorManager) ctx.getSystemService(Context.SENSOR_SERVICE); 
  35.  } 
  36.  
  37.  /** 
  38.   * Executes the request and returns PluginResult. 
  39.   * 
  40.   * @param action   The action to execute. 
  41.   * @param args    JSONArry of arguments for the plugin. 
  42.   * @param callbackId The callback id used when calling back into JavaScript. 
  43.   * @return     A PluginResult object with a status and message. 
  44.   */ 
  45.  public PluginResult execute(String action, JSONArray args, String callbackId) { 
  46.   PluginResult.Status status = PluginResult.Status.OK; 
  47.   String result = "";   
  48.    
  49.   try { 
  50.    if (action.equals("start")) { 
  51.     this.start(); 
  52.    } 
  53.    else if (action.equals("stop")) { 
  54.     this.stop(); 
  55.    } 
  56.    else if (action.equals("getStatus")) { 
  57.     int i = this.getStatus(); 
  58.     return new PluginResult(status, i); 
  59.    } 
  60.    else if (action.equals("getHeading")) { 
  61.     // If not running, then this is an async call, so don't worry about waiting 
  62.     if (this.status != RUNNING) { 
  63.      int r = this.start(); 
  64.      if (r == ERROR_FAILED_TO_START) { 
  65.       return new PluginResult(PluginResult.Status.IO_EXCEPTION, ERROR_FAILED_TO_START); 
  66.      } 
  67.      // Wait until running 
  68.      long timeout = 2000
  69.      while ((this.status == STARTING) && (timeout > 0)) { 
  70.       timeouttimeout = timeout - 100; 
  71.       try { 
  72.        Thread.sleep(100); 
  73.       } catch (InterruptedException e) { 
  74.        e.printStackTrace(); 
  75.       } 
  76.      } 
  77.      if (timeout == 0) { 
  78.       return new PluginResult(PluginResult.Status.IO_EXCEPTION, AccelListener.ERROR_FAILED_TO_START);       
  79.      } 
  80.     } 
  81.     float f = this.getHeading(); 
  82.     return new PluginResult(status, f); 
  83.    } 
  84.    else if (action.equals("setTimeout")) { 
  85.     this.setTimeout(args.getLong(0)); 
  86.    } 
  87.    else if (action.equals("getTimeout")) { 
  88.     long l = this.getTimeout(); 
  89.     return new PluginResult(status, l); 
  90.    } 
  91.    return new PluginResult(status, result); 
  92.   } catch (JSONException e) { 
  93.    e.printStackTrace(); 
  94.    return new PluginResult(PluginResult.Status.JSON_EXCEPTION); 
  95.   } 
  96.  } 
  97.  
  98.  /** 
  99.   * Identifies if action to be executed returns a value and should be run synchronously. 
  100.   * 
  101.   * @param action The action to execute 
  102.   * @return   T=returns value 
  103.   */ 
  104.  public boolean isSynch(String action) { 
  105.   if (action.equals("getStatus")) { 
  106.    return true; 
  107.   } 
  108.   else if (action.equals("getHeading")) { 
  109.    // Can only return value if RUNNING 
  110.    if (this.status == RUNNING) { 
  111.     return true; 
  112.    } 
  113.   } 
  114.   else if (action.equals("getTimeout")) { 
  115.    return true; 
  116.   } 
  117.   return false; 
  118.  } 
  119.     
  120.     /** 
  121.      * Called when listener is to be shut down and object is being destroyed. 
  122.      */ 
  123.  public void onDestroy() { 
  124.   this.stop(); 
  125.  } 
  126.  
  127.     //-------------------------------------------------------------------------- 
  128.     // LOCAL METHODS 
  129.     //-------------------------------------------------------------------------- 
  130.  
  131.     /** 
  132.      * Start listening for compass sensor. 
  133.      * 
  134.      * @return    status of listener 
  135.      */ 
  136.  public int start() { 
  137.    
  138.   // If already starting or running, then just return 
  139.         if ((this.status == CompassListener.RUNNING) || (this.status == CompassListener.STARTING)) { 
  140.          return this.status; 
  141.         } 
  142.  
  143.   // Get accelerometer from sensor manager 
  144.   List<Sensor> list = this.sensorManager.getSensorList(Sensor.TYPE_ORIENTATION); 
  145.  
  146.         // If found, then register as listener 
  147.   if (list.size() > 0) { 
  148.    this.mSensor = list.get(0); 
  149.    this.sensorManager.registerListener(this, this.mSensor, SensorManager.SENSOR_DELAY_NORMAL); 
  150.             this.lastAccessTime = System.currentTimeMillis(); 
  151.             this.setStatus(CompassListener.STARTING); 
  152.   } 
  153.  
  154.   // If error, then set status to error 
  155.         else { 
  156.             this.setStatus(CompassListener.ERROR_FAILED_TO_START); 
  157.         } 
  158.         
  159.         return this.status; 
  160.  } 
  161.   
  162.     /** 
  163.      * Stop listening to compass sensor. 
  164.      */ 
  165.  public void stop() { 
  166.         if (this.status != CompassListener.STOPPED) { 
  167.          this.sensorManager.unregisterListener(this); 
  168.         } 
  169.         this.setStatus(CompassListener.STOPPED); 
  170.  } 
  171.   
  172.   
  173.  public void onAccuracyChanged(Sensor sensor, int accuracy) { 
  174.   // TODO Auto-generated method stub  
  175.  } 
  176.  
  177.     /** 
  178.      * Sensor listener event. 
  179.      * 
  180.      * @param SensorEvent event 
  181.      */ 
  182.  public void onSensorChanged(SensorEvent event) { 
  183.  
  184.   // We only care about the orientation as far as it refers to Magnetic North 
  185.   float heading = event.values[0]; 
  186.  
  187.   // Save heading 
  188.         this.timeStamp = System.currentTimeMillis(); 
  189.   this.heading = heading; 
  190.   this.setStatus(CompassListener.RUNNING); 
  191.  
  192.   // If heading hasn't been read for TIMEOUT time, then turn off compass sensor to save power 
  193.   if ((this.timeStamp - this.lastAccessTime) > this.TIMEOUT) { 
  194.    this.stop(); 
  195.   } 
  196.  } 
  197.   
  198.     /** 
  199.      * Get status of compass sensor. 
  200.      * 
  201.      * @return   status 
  202.      */ 
  203.  public int getStatus() { 
  204.   return this.status; 
  205.  } 
  206.   
  207.  /** 
  208.   * Get the most recent compass heading. 
  209.   * 
  210.   * @return   heading 
  211.   */ 
  212.  public float getHeading() { 
  213.         this.lastAccessTime = System.currentTimeMillis(); 
  214.   return this.heading; 
  215.  } 
  216.   
  217.  /** 
  218.   * Set the timeout to turn off compass sensor if getHeading() hasn't been called. 
  219.   * 
  220.   * @param timeout  Timeout in msec. 
  221.   */ 
  222.  public void setTimeout(long timeout) { 
  223.   this.TIMEOUT = timeout
  224.  } 
  225.   
  226.  /** 
  227.   * Get the timeout to turn off compass sensor if getHeading() hasn't been called. 
  228.   * 
  229.   * @return timeout in msec 
  230.   */ 
  231.  public long getTimeout() { 
  232.   return this.TIMEOUT; 
  233.  } 
  234.  
  235.  /** 
  236.   * Set the status and send it to JavaScript. 
  237.   * @param status 
  238.   */ 
  239.  private void setStatus(int status) { 
  240.   this.status = status; 
  241.  } 
  242.  

 

責任編輯:佚名 來源: Android123
相關推薦

2011-09-14 09:20:03

PhonegapAndroid平臺

2012-03-07 11:17:19

AndroidPhoneGap插件

2011-09-05 15:09:06

Android平臺Phonegap

2012-02-01 10:40:28

PhoneGap 1.

2012-07-06 13:50:44

跨平臺工具Adobe Phone

2011-08-31 13:27:52

AndroidPhoneGap

2011-07-18 14:46:56

PhoneGapBlackBerry

2010-10-09 15:01:27

PhoneGapiPhoneAndroid

2011-07-01 15:28:26

PhoneGap代碼示例

2011-07-19 08:50:17

PhoneGapwebOS

2011-07-22 08:34:37

PhoneGapSymbian

2011-07-15 15:54:38

PhoneGapiOS

2011-12-23 10:02:37

PhoneGapAndroid插件

2011-12-21 21:34:50

PhoneGapiOSAndroid

2011-09-02 13:30:43

Android SDKPhoneGap

2012-03-07 11:30:09

PhoneGapWindows Pho

2011-12-23 09:53:24

PhoneGap

2011-10-11 10:06:12

PhoneGap插件

2011-12-30 15:11:36

Adobe視頻PhoneGap

2012-05-17 08:29:54

PhoneGap誤區
點贊
收藏

51CTO技術棧公眾號

一级片视频在线观看| 午夜男人的天堂| 免费看一级大片| 国产日韩在线观看视频| 99麻豆久久久国产精品免费| www.国产精品一二区| 777一区二区| 国产丝袜精品丝袜| 久久中文字幕电影| 成人黄色av网站| 日韩 欧美 中文| 久久精品国产99久久| 欧美精品一区二区三区视频| 天天做天天爱天天高潮| 成人久久精品人妻一区二区三区| 亚洲一区日韩在线| 欧美一级黄色录像| 国产福利视频在线播放| 成人黄色在线电影| 国产视频在线观看一区二区三区| 999在线免费观看视频| 中文人妻av久久人妻18| 韩国自拍一区| www.欧美精品一二三区| 日本黄色网址大全| 国产成人tv| 亚洲一区二区影院| 亚洲一区精彩视频| 欧美精品少妇| 成人动漫视频在线| 18成人在线| 久久久精品99| 卡一精品卡二卡三网站乱码| 欧美精品色一区二区三区| 国产无套内射久久久国产| 国产乱妇乱子在线播视频播放网站| 欧美激情一区二区三区全黄| 久久久综合亚洲91久久98| 亚洲精品国产av| 国产剧情一区二区三区| 国产日韩av高清| 中文字幕自拍偷拍| 三级久久三级久久| 精品国产一区二区三区久久久| 免费黄色在线视频| 天天做夜夜做人人爱精品| 亚洲аv电影天堂网| 宇都宫紫苑在线播放| 伊人国产精品| 7878成人国产在线观看| 中文字幕精品一区二区三区在线| 国产私拍福利精品视频二区| 欧美在线看片a免费观看| 天天干天天操天天干天天操| а√天堂中文在线资源bt在线| 久久婷婷成人综合色| 欧美裸体网站| 国产三级在线看| 国产资源在线一区| 91久久精品国产| 国产免费叼嘿网站免费| 国产精品一品视频| 国产成人精品日本亚洲11 | 精品不卡视频| 欧美极品少妇xxxxⅹ裸体艺术| 1024手机在线视频| 美女一区二区在线观看| 亚洲国产日韩欧美在线图片| 国产伦精品一区二区三区妓女| 小嫩嫩12欧美| 正在播放欧美一区| 国产日产精品一区二区三区的介绍| 91av精品| 性欧美xxxx视频在线观看| 自拍偷拍你懂的| 99国内精品久久久久久久| 久久人人爽亚洲精品天堂| 极品颜值美女露脸啪啪| 亚洲美女黄色| 国产高清视频一区三区| 国产又大又粗又硬| 成人av在线看| 视频一区亚洲| 污视频免费在线观看| 国产区在线观看成人精品| 中日韩在线视频| 青青视频在线观| 欧美极品美女视频| wwwwww欧美| 黄色亚洲网站| 555www色欧美视频| 国产网站无遮挡| 天天操综合网| 欧美一区二区三区…… | wwww亚洲| 在线亚洲一区观看| 日本wwww色| 精品国产1区| 亚洲黄色在线观看| 久久午夜精品视频| 精品91在线| 国产精品欧美风情| 欧洲精品久久一区二区| 中文字幕中文字幕一区二区| 少妇人妻在线视频| 99精品视频在线免费播放| 日韩高清不卡av| 中文视频在线观看| 日本一区二区三区视频| 中文字幕9999| 日本中文字幕网| 激情文学综合丁香| 欧美一区免费视频| 黄色大片在线| 制服视频三区第一页精品| 国产伦精品一区二区三区妓女 | baoyu135国产精品免费| 中文字幕在线精品| 国产高潮久久久| 国产91丝袜在线播放九色| 亚洲国产精品久久久久久女王| av在线网页| 欧美一区二区三区视频在线观看| 天天躁日日躁aaaa视频| 亚洲精品日本| 99超碰麻豆| 毛片免费不卡| 欧美三片在线视频观看| 三级网站在线免费观看| 日韩香蕉视频| 国产精品区一区二区三在线播放| 日本三级在线视频| 亚洲图片激情小说| 天天爱天天操天天干| 日韩有码一区| 韩国19禁主播vip福利视频| 99久久国产免费| 国产精品国产馆在线真实露脸 | 久久国产精品系列| 成人性色生活片免费看爆迷你毛片| 在线看成人av电影| 日韩深夜福利网站| www.亚洲免费视频| 96亚洲精品久久久蜜桃| 中文字幕一区二区三区四区| 91亚洲免费视频| 日本一本不卡| 国产一区二区丝袜高跟鞋图片| av在线第一页| 久久久久久久综合日本| 国产91在线免费| 欧美黑人巨大videos精品| 午夜精品在线视频| 可以免费看毛片的网站| 亚洲成人精品影院| 亚洲av成人片色在线观看高潮| 在线综合亚洲| 欧洲国产精品| 日韩av黄色| 欧美大成色www永久网站婷| 性少妇videosexfreexxx片| 亚洲一区二区三区视频在线播放| 成人免费看片载| 国产视频亚洲| 日韩三级电影| 丁香花在线电影小说观看| 欧美zozo另类异族| www..com国产| 久久精品亚洲精品国产欧美kt∨| 不卡av免费在线| 日韩久久精品网| 91免费国产视频| av影视在线| 亚洲石原莉奈一区二区在线观看| 中文字幕第99页| 亚洲男人的天堂av| 午夜免费高清视频| 午夜国产一区二区| 国产亚洲欧美一区二区三区| 日韩欧美看国产| x99av成人免费| 熟妇高潮一区二区高潮| 欧美性高清videossexo| 欧美日韩三级在线观看| youjizz久久| 国产三级国产精品国产专区50| 欧美aa国产视频| 日本在线高清视频一区| 99精品国产九九国产精品| 91高清视频在线免费观看| h网站视频在线观看| 欧美不卡一区二区三区四区| 精品国产xxx| 亚洲精品欧美激情| 扒开jk护士狂揉免费| 国产在线视频精品一区| 欧美成人免费高清视频| 欧美/亚洲一区| 日韩妆和欧美的一区二区| 日韩欧美中文在线观看| 久久精品成人动漫| 天天操天天爱天天干| 777色狠狠一区二区三区| 国产精品男女视频| 亚洲激情校园春色| 久久久久无码精品国产sm果冻 | 国产精品色综合| 懂色av一区二区三区| 折磨小男生性器羞耻的故事| 日韩成人一级大片| 国产素人在线观看| 亚洲情侣在线| 先锋影音日韩| 欧美日韩看看2015永久免费 | 亚洲视频网在线直播| 色婷婷av777| 暴力调教一区二区三区| 天堂网成人在线| 久久精品国产秦先生| 久久久久久久久久久久久国产精品| 亚洲欧美综合| 最新精品视频| 日韩欧美视频| 日韩国产伦理| 蜜桃一区二区| 精品视频第一区| 97视频一区| 69174成人网| 小说区图片区亚洲| 国产精品一区二区三区免费视频| 裤袜国产欧美精品一区| 91精品国产91久久| 国产777精品精品热热热一区二区| 久久中文字幕国产| 求av网址在线观看| 中文字幕在线日韩| 69视频在线| 自拍偷拍亚洲精品| 91精品大全| 日韩在线视频免费观看| 免费在线观看av| 久久久97精品| 在线观看的网站你懂的| 欧美人在线观看| 午夜一区在线观看| 欧美精品一区二区不卡| 日本成人动漫在线观看| 亚洲国产91色在线| 亚洲欧美日韩综合在线| 日韩精品视频三区| 黄上黄在线观看| 在线观看国产精品91| 91吃瓜网在线观看| 久久亚洲综合国产精品99麻豆精品福利| 欧美jizz18性欧美| 欧美美女18p| 超碰91在线观看| 日本一区二区在线免费播放| 欧美日韩亚洲国产| 成人免费在线视频网站| 视频一区日韩精品| 黄色国产精品一区二区三区| 琪琪久久久久日韩精品| 欧美日韩天天操| 欧美黄色录像片| 日韩精品手机在线观看| 精品1区2区3区4区| 亚洲五月天综合| 国精产品一区一区三区mba桃花| aaaaaaaa毛片| 99re成人精品视频| 免费黄色在线网址| 亚洲在线中文字幕| 亚洲另类欧美日韩| 欧美色电影在线| 中文字幕在线播放不卡| 日韩写真欧美这视频| 性感美女一级片| 日韩在线精品视频| 日本片在线看| 国产成人精品久久久| 国语精品视频| 久久99久久精品国产| 色婷婷热久久| 欧美 日韩 国产 高清| 免费成人av在线播放| 最新国产精品自拍| 久久精品夜夜夜夜久久| 久草网站在线观看| 色又黄又爽网站www久久| 国产一区二区在线视频聊天| 亚洲精品国精品久久99热 | 偷窥自拍亚洲色图精选| 一区二区三区四区五区视频| 在线日韩欧美| 九一精品久久久| 91麻豆免费观看| 欧美日韩综合一区二区| 色婷婷av一区| 亚洲精品第五页| 精品国产一区二区三区久久狼5月| sm捆绑调教国产免费网站在线观看| 国产美女被下药99| 日韩伦理一区二区三区| 欧美a级黄色大片| 巨乳诱惑日韩免费av| 成人做爰www看视频软件| 国产精品情趣视频| 欧美亚洲精品天堂| 欧美tickling网站挠脚心| 日韩伦理在线电影| 国产精品9999| 亚洲盗摄视频| 久久av一区二区三区亚洲| 999视频精品| 精品久久久久久中文字幕2017| 成人精品小蝌蚪| 成人免费毛片xxx| 欧美色窝79yyyycom| 全色精品综合影院| 欧美精品三级在线观看| 日本在线视频中文字幕| 日韩一区二区在线观看| 1pondo在线播放免费| 欧洲亚洲在线视频| 高潮按摩久久久久久av免费| 手机看片日韩国产| 久久爱另类一区二区小说| 欧美黄色一级生活片| 欧美午夜久久久| 人妻少妇精品无码专区久久| 欧美高清视频在线| 9765激情中文在线| 成人欧美一区二区| 国产精品成人一区二区不卡| 美女网站视频黄色| 中文字幕精品在线不卡| 中文av免费观看| 在线观看国产精品日韩av| 韩国女主播一区二区| 视频一区视频二区视频三区高| 日韩av中文字幕一区二区三区| 自拍偷拍视频亚洲| 欧美亚洲日本国产| 91在线视频免费看| 成人国产在线视频| 中文字幕一区二区三区久久网站| 五月天视频在线观看| 亚洲欧美经典视频| 国产激情视频在线播放| 欧美国产中文字幕| 精品综合久久88少妇激情| www.日本在线播放| 91在线精品一区二区| 永久免费无码av网站在线观看| 亚洲色图激情小说| 成人免费黄色| 可以在线看黄的网站| 国产成人av电影在线| 日韩字幕在线观看| 亚洲品质视频自拍网| 成人在线视频免费| 中文字幕乱码免费| 国产成人午夜高潮毛片| 欧美精品亚洲精品日韩精品| 亚洲伦理中文字幕| 欧美少妇激情| www成人免费| 91免费看视频| 中文字幕在线日亚洲9| 欧美精品日韩www.p站| 日韩大胆成人| 黄色手机在线视频| 亚洲一区二区三区视频在线播放| 三级黄视频在线观看| 91精品国产自产在线观看永久| 午夜日韩激情| 国产特级黄色录像| 91麻豆精品国产91| 人狥杂交一区欧美二区| 日韩午夜视频在线观看| 国产精品1区2区| 精品人妻一区二区三区潮喷在线| 啊v视频在线一区二区三区| 成人高潮视频| 天天爽夜夜爽一区二区三区| 亚洲免费视频成人| 欧美男男同志| 1区1区3区4区产品乱码芒果精品| 亚洲一区二区三区免费在线观看| 阿v天堂2014| 精品久久久久久久久久久院品网| 第84页国产精品| 日韩中文字幕亚洲精品欧美| 91丨九色丨蝌蚪富婆spa| 国产婷婷在线视频| 国产成人啪精品视频免费网| 欧美视频在线观看| 国产第一页精品| 日韩大陆欧美高清视频区|