2022年4月25日 星期一

ASUS RT-N10+ C1 150Mbps 無線路由器拆解(五)

ASUS RT-N10+ C1 150Mbps 無線路由器拆解(五):

筆者終於忍不住將這台 ASUS(華碩)RT-N10+ C1(包裝盒型號:RT-N10+ / 官網型號:RT-N10+ C1)無線路由器(Wireless-N Router)拆解,因為當將這台 ASUS(華碩)RT-N10+ C1 無線路由器安裝好後,都不會再拆解,所以現在不做,可能要等很久才會拆解(Teardown)。

ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)
拆解這台 ASUS(華碩)RT-N10+ C1(包裝盒型號:RT-N10+ / 官網型號:RT-N10+ C1)無線路由器,首先將主機底的 4個膠腳拆除,然後用十字螺絲批將 4顆十字螺絲拆除,再小心打開主機的上蓋,上蓋有 2個鎖扣。無線路由器主機上蓋尺寸為 178mm × 128mm × 4mm,重量是 52g,材質是 ABS,生產日期是 2011年。無線路由器主機底殼編號 T124A,尺寸為 173mm × 123mm × 18.5 / 20 / 28 / 31mm,重量是 98.1g,材質是 ABS,生產日期是 2012年。

ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)的底部螺絲位置
ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)的膠腳和螺絲
打開ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)的膠殼
ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)的主機上蓋
ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)的主機底蓋
ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)主機 PCB編號 AP699E8N3 7U31C-4 REV:1.0,尺寸為 126mm × 105.5mm × 1.8mm,重量是 75.1g,多層 PCB板(Multi-layer PCB)94V-0 E254667 T-M1 P4E05281 A0,生產日期是 11 41(2011年 41周)。PCB板上主要有 3枚 IC,1枚 Ralink(雷凌科技)RT3050T BGA-289 封裝 SOC combines Ralink 802.11n draft compliant 1T1R MAC/BBP/RF, a high performance 320MHz MIPS24KEc CPU core, 5-port integrated 10/100 Ethernet switch/PHY, and an USB OTG,1枚 ESMT(晶豪科技)M12L2561616A-1 TSOP-54 封裝 4M x 16 Bit x 4 Banks Synchronous DRAM,1枚Spansion(飛索半導體)S29GL032N90TFI030 TSOP-48 封裝 NOR Flash 3V 32Mb Float Gate two address 90s。

ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)PCB板的正面
ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)PCB板的背面
Ralink(雷凌科技)RT3050T BGA-289 封裝 SOC IC
ESMT(晶豪科技)M12L2561616A-1 TSOP-54 封裝 4M DRAM IC
Spansion(飛索半導體)S29GL032N90TFI030 TSOP-48 封裝 32Mb Flash IC
產品主控制板 PCB 板主要零件(BOM):

Type

Brand

P/N

Packaging

U28 - SOC combines Ralink’s 802.11n draft compliant 1T1R MAC/BBP/RF, a high performance 320MHz MIPS24KEc CPU core, 5-port integrated 10/100 Ethernet switch/PHY, and an USB OTG.

Ralink

RT3050T

BGA-289

U8 - 4M x 16 Bit x 4 Banks Synchronous DRAM

ESMT

M12L2561616A-1

TSOP-54

U6 - NOR Flash 3V 32Mb Float Gate two address 90s

Spansion

S29GL032N90TFI030

TSOP-48


2022年 4月 25日(Mon)天氣報告
氣溫:50.0°F / 10.0°C @ 07:00
風速:每小時 11公里
降雨機會:13%
相對濕度:百分之 91%
天氣:多雲

2022年4月24日 星期日

ASUS RT-N10+ C1 150Mbps 無線路由器設定方法(四)

ASUS RT-N10+ C1 150Mbps 無線路由器設定方法(四):

這台 ASUS(華碩)RT-N10+ C1(包裝盒型號:RT-N10+ / 官網型號:RT-N10+ C1)無線路由器(Wireless-N Router),首先當然是將 AC 適配器(Switching Adapter)的 DC (DC 12V)插頭連接在無線路由器背後的 DC 插座, Power LED 便會亮著,大約 25秒後 Wireless LED 燈也會亮著。這時便可以用電腦連上無線網絡存取,選擇 ASUS 無線網絡連線,便可以連接上 ASUS RT-N10+ C1 150Mbps 無線路由器。

ASUS RT-N10+ C1 150Mbps 無線路由器(Wireless-N Router)的首頁
然後輸入路由器的 IP 位址,再輸入帳號密碼,點擊登入,便可以進入 ASUS(華碩)RT-N10+ C1 無線路由器的首頁,如果不成功,可以強制硬重置(Reset)路由器,將舊的上網設定、無線網路的帳號密碼等設定清除,重回出廠預設值。

ASUS RT-N10+ C1 150Mbps 無線路由器(Wireless-N Router)的無線網絡存取
出廠預設值:
路由器的 IP 位址:192.168.1.1
子網路遮罩:255.255.255.0
用戶名:admin
密碼:admin

QIS : 自動偵測網路連線類型,快速安裝上網
搭載華碩全新使用者介面(EZ UI)的ASUS RT-N10+ C1 無線寬頻路由器,具有自動偵測使用者網路連線類型的功能,使用者無須手動指定家中 ISP 連線類型(PPPoE、固定IP、DHCP、PPTP、L2TP),只需將電腦與 RT-N10+ C1 進行連結, 開啟您的網路瀏覽器,RT-N10+ C1 便會引導使用者完成相關上網設定,三個步驟即可架構您的無線網路!
ASUS RT-N10+ C1 150Mbps 無線路由器(Wireless-N Router)的QIS頁面
Dr. Surf : 連線問題除錯幫手,疑難排解不求人
RT-N10+ C1 能即時偵測使用者的網路連線狀態,當網路連線出現異常時,Dr.Surf (網路連線問題除錯幫手)便會提出警告,並顯示解決此問題的建議方法,讓您在第一時間內恢復您的網路連線。

ASUS RT-N10+ C1 150Mbps 無線路由器(Wireless-N Router)的 Dr. Surf 除錯幫手頁面
EZ QoS : 圖形化頻寬管理,網路應用不塞車
有別於眾多品牌採取文字設定介面進行頻寬管理,RT-N10+ C1 採取圖形化介面進行頻寬管控。透過EZ QoS ((Quality of Service)頻寬管理系統,使用者可自行分配頻寬優先順序給不同的網路應用程式(ex.影音串流,遊戲封包,FTP 封包... )以確保所需的網路需求不會Lag。

ASUS RT-N10+ C1 150Mbps 無線路由器(Wireless-N Router)的EZ QoS 頁面
Network Map : 圖型化使用介面,超簡易設定與管理
有別於傳統文字介面的管理方式,RT-N10+ C1 使用者介面採用直覺、友善的圖形化設計,所有功能皆可透過點選圖示進行設定。若點選網路地圖的裝置圖示,使用者可分配頻寬優先權給不同的使用者,也可直接將非法入侵者封鎖。

ASUS RT-N10+ C1 150Mbps 無線路由器(Wireless-N Router)的進階設定頁面
2022年 4月 24日(Sun)天氣報告
氣溫:43.0°F / 6.0°C @ 07:00
風速:每小時 8公里
降雨機會:2%
相對濕度:百分之 79%
天氣:晴

2022年4月23日 星期六

ASUS RT-N10+ C1 150Mbps 無線路由器強制重置(三)

ASUS RT-N10+ C1 150Mbps 無線路由器強制重置(三):

筆者常常試用測試無線路由器(Wireless Router)作不同的連接方式,經常會令到路由器不能正常工作,透過路由器重置按鈕(Reset),恢復原廠設定值(Factory Defaults Setting)是很重要,但是每種路由器都有自已的方法來進行重置,不是完全一樣,就算是相同公司的產品情況都是一樣,筆者這台 ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)也是不完全相同,所以也將方法紀錄下來,方面查找!

ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)
將無線路由器的 AC 變壓器插入電源輸入(DC-IN)連接埠並插上電源,在路由器後面左邊有個孔,就是 RESET 按鈕位置。按著 RESET 按鈕大約 5-10秒,直到路由器的電源 LED 燈號開始閃爍,即可停止按壓,此時,因為路由器正在重新開機,所有的 LED 燈號都應熄滅, 此為正常現象,接著等待 LED 燈號再次亮起,表示還原設定值完成。

ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)的RESET按鈕位置
  1. 按住 RESET 按鈕(超過 5-10秒鐘)
  2. 重新開機路由器
  3. 登錄到路由器

出廠預設值:
路由器的 IP 位址:192.168.1.1
子網路遮罩:255.255.255.0
用戶名:admin
密碼:admin

注意:
如何重置路由器為出廠預設值(Reset to Factory Defaults Setting): 在路由器啟動的情況下,按住 RESET 按鈕(大約 5-10秒鐘),直到 WPS LED 燈從亮著和慢速閃爍。然後鬆開按鈕並等待路由器重新啟動並恢復原廠預設值,正常是 Power 和 Wireless LED 燈亮著。
2022年 4月 23日(Sat)天氣報告
氣溫:46.0°F / 8.0°C @ 07:00
風速:每小時 6公里
降雨機會:2%
相對濕度:百分之 81%
天氣:多雲

2022年4月22日 星期五

ASUS RT-N10+ C1 150Mbps 無線路由器開箱文(二)

ASUS RT-N10+ C1 150Mbps 無線路由器開箱文(二):

這台 ASUS(華碩)RT-N10+ C1(包裝盒型號:RT-N10+ / 官網型號:RT-N10+ C1)是朋友不要的無線路由器(Wireless-N Router),便送給筆者研究之用,多得朋友的送贈,可以不花費用,消磨時間。打開 RT-N10+ C1,感覺 ASUS 花了時間在外殼設計上,非一般的四四方方,黑色流線形外殼,蠻好看!ASUS(華碩)RT-N10+ C1 包裝盒尺寸為 280mm × 190mm × 78mm,重量是 206.7g,包裝盒有彩色產品圖樣和描述,非常詳細。

ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)包裝盒
ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)包裝盒的正面
ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)包裝盒的右側面
ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)包裝盒的左側面
ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)包裝盒的前面
ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)包裝盒的後面
ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)包裝盒的背面
打開 ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)的包裝盒,包裝盒內有無線路由器、使用說明書、CD-ROM 和保證書,旁邊放有網路線和 AC 適配器。無線路由器主機尺寸為 178mm × 153mm × 25 / 35mm,重量是 228g,黑色表面格狀紋路外殼,讓產品看起來沒有塑膠感。主機有 8個 LED 指示燈,包括是電源開關、無線、WPS、WAN、LAN1、LAN2、LAN3 和 LAN4!主機後面有天線,天線為固定的,不可以更換天線,電源插座,RESET重置按鈕,網路孔插槽皆為 4個 LAN + 1個 WAN,WPS 按鍵。

打開ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)的包裝盒
ASUS(華碩)RT-N10+ C1無線路由器(Wireless-N Router)
ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)的後面
ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)的LED 指示燈
無線路由器的 AC 適配器(Switching Adapter)型號是 S10A07-120A050X4,尺寸為 60mm × 41 / 48mm × 26b / 37 / 60mm,重量是 86g,電源規格是 AC 輸入110V~240V(50~60Hz),最大 0.3 A 電流,DC 輸出 12 V 最大 0.5 A 電流,生產商是 Shenzhen Gongjin Electronics Co., Ltd. ,中國製造(Made in China)。

ASUS(華碩)RT-N10+ C1 無線路由器的 AC 適配器(Switching Adapter)
ASUS(華碩)RT-N10+ C1 無線路由器的附件
2022年 4月 22日(Fri)天氣報告
氣溫:44.0°F / 7.0°C @ 07:00
風速:每小時 5公里
降雨機會:75%
相對濕度:百分之 89%
天氣:小陣雨

2022年4月21日 星期四

ASUS RT-N10+ C1 150Mbps 無線路由器介紹(一)

ASUS RT-N10+ C1 150Mbps 無線路由器介紹(一):

ASUS(華碩)RT-N10+ C1(包裝盒型號:RT-N10+ / 官網型號:RT-N10+ C1)是一台具備有線和無線網路連結設計的 150Mbps Wireless N 無線路由器(Wireless-N Router),專用於小型企業和家庭辦公室的網路。它能夠進一步延伸其無線網路覆蓋範圍。RT-N10+ C1 搭配華碩獨家的快速安裝上網(QIS)和圖形使用者介面(GUI),使其易於安裝和管理。使用者可透過 4組 SSID,輕易地管理網路存取和頻寬分配。還有 Dr. Surf 是您個人的無線網路醫生,能自動提供即時診斷,自動偵測連結問題。

ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)
ASUS(華碩)RT-N10+ C1 無線分享器(Wireless-N Router)背面
Plug-n-Surf 功能,3步驟快速安裝,短時間內,即可遨遊網際網路。
ASUS(華碩)RT-N10+ 無線路由器(Wireless-N Router)Plug-n-Surf功能
透過延伸訊號中繼模式,擴大 WiFi 的覆蓋範圍,不再有死點。
ASUS(華碩)RT-N10+ C1 無線路由器(Wireless-N Router)中繼模式功能
品牌型號:ASUS(華碩)150Mbps 無線路由器(Wireless-N Router)
型號:RT-N10+ C1(包裝盒型號:RT-N10+ / 官網型號:RT-N10+ C1)
HW 版本:C1
FW 版本:V2.0.2.8
網路技術標準:IEEE 802.11b,IEEE 802.11g,IEEE 802.11n,IEEE 802.11d,IEEE 802.3,IEEE 802.3u,IEEE 802.11i,IEEE 802.11e,IPv4
產品分類:N150 超值效能; 150Mbps
傳輸量:802.11b : 1, 2, 5.5, 11Mbps802.11g : 6,9,12,18,24,36,48,54Mbps 802.11n : up to 150Mbps
天線:固定 5 dBi 雙極天線 x 1
運作頻率:2.4GHz
加密模式:64-bit WEP,128-bit WEP,WPA2-PSK,WPA-PSK,WPA-Enterprise,WPA2-Enterprise,支援 WPS
防火牆與進階功能:Firewall: NAT and SPI (Stateful Packet Inspection)Filtering: Port,IP packet,URL Keyword,MAC address 管理程式:UPnP,DNS Proxy,DHCP,DDNS,DMZ,Universal Repeater
VPN 支援功能:IPSec Pass-ThrouthPPTP Pass-ThroughL2TP Pass-Through
連線類型:網路連線類型 : 浮動 IP,固定 IP,PPPoE (支援 MPPE),PPTP,L2TP
網路埠規格:4 x RJ45 for 10/100 BaseT for LAN,1 x RJ45 for 10/100 BaseT for WAN
按鈕:WPS Button,Reset Button,Power Button
電源規格:AC 輸入110V~240V(50~60Hz)DC 輸出 12 V 最大 0.5 A 電流
作業系統支援:Windows® 8 32bit/64bit,Windows® 7 32bit/64bit ,Windows® Vista 32bit/64bit
Windows® XP 32bit/64bit,Mac OS X,Linux
產品尺寸:168 × 124 × 30 mm (寬×長×高)
重量:210g
包裝內容:RT-N10+ C1 Wireless Router,RJ-45 CablePower Adapter,Warranty Card ,Quick Start Guide,CD
生產地:中國製造(Made in China)
保固服務:3年保固
發售日期:2011年
參考售價:港幣129元(20120115)

2022年 4月 21日(Thu)天氣報告
氣溫:44.0°F / 7.0°C @ 07:00
風速:每小時 5公里
降雨機會:69%
相對濕度:百分之 92%
天氣:多雲

2022年4月4日 星期一

C 程式 - 流程控制介紹

C 程式 - 流程控制介紹:

在 C 編程時,很多時候需要使用流程控制(Flow of Control),下面紀錄了常用的流程控制,包括迴圈指令和條件運算式,方便日後查研。

C 程式的流程控制
迴圈指令 - 在處理資料的時候,我們時常會需要不斷重複相同的動作,這時候會需要使用到迴圈指令。
C - for Loop(for迴圈):

  for (int i=0; i<=10; i++)

   {

     printf("%d ", i);

   }


Result:

0 1 2 3 5 6 7 8 9 10


C - do while Loop(for迴圈):

   int i=0;

   do

   {

      printf("%d ", i);

      i++;

   }while(i<10);

 


Result:

0 1 2 3 4 5 6 7 8 9


C - while Loop(while迴圈):

    int counter=10;

    while (counter >=0)

    {

             printf("%d  ", counter);

             counter--;

    }


Result:

10 9 8 7 6 5 4 3 2 1 0


判斷式條件指令 - 當某些條件成立時,要做A;反之則做B的情況。

C - if statement(if 條件):

    int x = 20;

    if (x<22)

    {

        printf("Variable x is less than 22");

    }


Result:

Variable x is less than 22


C - if statement(if 條件):

   j = ( i < 0 ) ? ( -i ) : ( i );


Result:

上面範例會將 i 的絕對值指派為 j。 如果 i 小於 0,會將 -i 指派至 j。 如果 i 大於或等於 0,則會將 i 指派至 j


C - If else statement(if else條件):

   int height;

   printf("Enter your height:");

   scanf("%d",&age);

   if(height >=180)

            printf("Your height higher than 179");

   else

            printf("Your height lower than 180");


Result:

Enter your height: 200

Your height higher than 179


C - Switch Case Statement(switch Case 條件):

     int number=3

     switch(number)

     {

         case 1:

           printf("Case Value is: %d", number);

           break;

         case 2:

           printf("Case Value is: %d", number);

           break;

         case 3:

           printf("Case Value is: %d", number);

           break;

         default:

           printf("Case Value is: %d", number);

    }


Result:

Case Value is: 3


C - Operators(運算子):

     - 第一個運算元小於第二個運算元

     - 第一個運算元大於第二個運算元

<=   - 第一個運算元小於或等於第二個運算元

>=   - 第一個運算元大於或等於第二個運算元

==   - 第一個運算元等於第二個運算元

!=   - 第一個運算元不等於第二個運算元

&&   - 邏輯 AND 運算子

||   - 邏輯 OR 運算子

     - 邏輯 NOT 運算子


2022年 4月 4日(Mon)天氣報告
氣溫:46.0°F / 8.0°C @ 07:00
風速:每小時 31公里
降雨機會:24%
相對濕度:百分之 77%
天氣:局部有雲

2022年4月3日 星期日

Android Studio - 打開相機閃燈程式(Camera Flash Program)(八十四)

Android Studio - 打開相機閃燈程式(Camera Flash Program)(八十四):

當在天氣晴朗時,光線充足,相機拍攝是可以不用打開閃燈,但在光線不充足環境,便要打開相機閃燈(Flash),作為補光之用,而且手機閃燈也可以作為手電筒(Torch),非常方便,特別是步行在黑暗的路上作照明用途。

Android 相機閃燈程式(Camera Flash Program)
  • 操作系統:Windows 7 64-bit 版本
  • 開發環境:Android Studio 4.0.1 版本
  • 原程式:C:\Development\Development_Android\Android_Project\DIY-Android-091-11g Camera Flash Bugworkshop
  • 程式:C:\Development\Development_Android\Android_Project\DIY-Android-091-11g Camera Flash Bugworkshop
  • 測試環境:Vivo(維沃)X5Max Android 4.4.4(KitKat)版本

Android相機閃燈程式(Camera Flash Program)編程步驟:
  • 設定 Camera 參數
  • 設置 layout ScrollView 參數 - activity_camera.xml
  • 設置手機閃燈程式

AndroidManifest.xml 獲取 Camera 許可權:

    <uses-permission android:name="android.permission.CAMERA" />

    <uses-permission android:name="android.permission.FLASHLIGHT"/>


activity_camera.xml:

<?xml version="1.0" encoding="utf-8"?>

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context=".MainActivity">

 

    <TextView

        android:id="@+id/textView"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="Hello World!"

        app:layout_constraintBottom_toBottomOf="parent"

        app:layout_constraintEnd_toEndOf="parent"

        app:layout_constraintHorizontal_bias="0.498"

        app:layout_constraintLeft_toLeftOf="parent"

        app:layout_constraintRight_toRightOf="parent"

        app:layout_constraintStart_toStartOf="parent"

        app:layout_constraintTop_toTopOf="parent"

        app:layout_constraintVertical_bias="0" />

 

    <Button

        android:id="@+id/btn_flash"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_marginTop="60dp"

        android:text="Camera Flash"

        app:layout_constraintEnd_toEndOf="parent"

        app:layout_constraintStart_toStartOf="parent"

        app:layout_constraintTop_toBottomOf="@+id/textView" />

 

 

</androidx.constraintlayout.widget.ConstraintLayout>


MainActivity.java:

package bugworkshop.blogspot.com.camera;

 

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

import android.hardware.Camera;

import java.util.List;

 

public class MainActivity extends AppCompatActivity {

    private TextView mTv_camea;

    private Button mBtn_flash;

    private boolean flash_on = false;

    private Camera mCamera;

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        mTv_camea = (TextView) findViewById(R.id.textView);

        mBtn_flash = (Button) findViewById(R.id.btn_flash);

 

        mCamera = Camera.open();

 

        mBtn_flash.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                if (!flash_on) {

                    setFlashLight(true);

                    flash_on = true;

                } else {

                    setFlashLight(false);

                    flash_on = false;

                }

            }

        });

    }

 

    public boolean setFlashLight(boolean open) {

        if (mCamera == null) {

            return false;

        }

        Camera.Parameters parameters = mCamera.getParameters();

        if (parameters == null) {

            return false;

        }

        List<String> flashModes = parameters.getSupportedFlashModes();

        // Check if camera flash exists

        if (null == flashModes || 0 == flashModes.size()) {

            // Use the screen as a flashlight (next best thing)

            return false;

        }

       

        String flashMode = parameters.getFlashMode();

        if (open) {

            if (Camera.Parameters.FLASH_MODE_TORCH.equals(flashMode)) {

                return true;

            }

            // Turn on the flash

            if (flashModes.contains(Camera.Parameters.FLASH_MODE_TORCH)) {

                parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);

                mCamera.setParameters(parameters);

                return true;

            } else {

                return false;

            }

        } else {

            if (Camera.Parameters.FLASH_MODE_OFF.equals(flashMode)) {

                return true;

            }

            // Turn on the flash

            if (flashModes.contains(Camera.Parameters.FLASH_MODE_OFF)) {

                parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);

                mCamera.setParameters(parameters);

                return true;

            } else

                return false;

        }

    }

}


2022年 4月 3日(Sun)天氣報告
氣溫:45.0°F / 7.0°C @ 07:00
風速:每小時 13公里
降雨機會:4%
相對濕度:百分之 79%
天氣:多雲