本發(fā)明涉及移動終端技術領域,尤其涉及的是一種基于移動終端的呼吸燈啟閉控制方法及移動終端。
背景技術:
呼吸燈是移動終端在有未讀短消息或應用提示時,閃爍以提示用戶的常用設計。
對于移動終端而言,用戶提醒可分類為強通知,如亮屏、振動及鈴聲等;及弱通知,如呼吸燈。對于弱通知而言,其主要用于提醒,而非通知。其特性在于,在未讀短消息或應用提示未被處理前會持續(xù)閃爍以提醒用戶,正因如此,其優(yōu)點在于提醒能力強;也正因如此,其往往在某些特殊情況,如用戶睡眠中,造成不必要的電量消耗。
因此,現(xiàn)有技術還有待于改進和發(fā)展。
技術實現(xiàn)要素:
鑒于上述現(xiàn)有技術的不足,本發(fā)明的目的在于提供一種基于移動終端的呼吸燈啟閉控制方法及移動終端,旨在解決現(xiàn)有技術中呼吸燈在未讀短消息或應用提示未被處理前持續(xù)閃爍,而在不必要的情況下造成電量浪費的問題。
本發(fā)明的技術方案如下:
一種基于移動終端的呼吸燈啟閉控制方法,其中,所述基于移動終端的呼吸燈啟閉控制方法包括:
步驟A:檢測移動終端當前狀態(tài);
步驟B:根據(jù)檢測結果判斷移動終端是否處于顯示屏朝下放置且呼吸燈開啟的靜止狀態(tài),或是否處于顯示屏朝上放置且呼吸燈關閉的狀態(tài);
步驟C:當判斷移動終端處于顯示屏朝下放置且呼吸燈開啟的靜止狀態(tài),控制關閉呼吸燈;
步驟D:當判斷移動終端處于顯示屏朝上放置且呼吸燈關閉的狀態(tài),控制開啟呼吸燈。
優(yōu)選方案中,所述的基于移動終端的呼吸燈啟閉控制方法,其中,所述基于移動終端的呼吸燈啟閉控制方法還包括:
步驟S:預設一用于定期檢測移動終端狀態(tài)的間隔時間;
步驟A具體為:在到達所預設的間隔時間后,檢測移動終端當前狀態(tài)并記錄檢測結果。
優(yōu)選方案中,所述的基于移動終端的呼吸燈啟閉控制方法,其中,步驟A中檢測移動終端當前狀態(tài)具體為:通過設置于移動終端的重力傳感器檢測移動終端當前狀態(tài)。
優(yōu)選方案中,所述的基于移動終端的呼吸燈啟閉控制方法,其中,步驟S之前或之后,步驟A之前還包括:
步驟X:設移動終端顯示屏左下角為參考點,而顯示屏朝上平放時參考點下方一點為初始點,以所述初始點為原點建立一靜態(tài)坐標系,而以移動終端自帶三維坐標系為動態(tài)坐標系,所述靜態(tài)坐標系以初始點至參考點方向為Z軸正半軸走向,而以參考點至顯示屏右下角方向為X軸正半軸走向,再以參考點至顯示屏左上角為Y軸正半軸走向。
優(yōu)選方案中,所述的基于移動終端的呼吸燈啟閉控制方法,其中,步驟S還包括:預設一用于判斷移動終端是否處于靜止狀態(tài)的閾值;
步驟A具體包括:
步驟A1:通過重力傳感器檢測參考點坐標(X1,Y1,Z1);
步驟A2:將所檢測參考點的坐標進行存儲;
步驟B具體包括:
步驟B1:當所檢測參考點坐標中Z1為負值時,判斷移動終端顯示屏朝下放置;當所檢測參考點坐標中Z1為正值時,判斷移動終端顯示屏朝上放置;
步驟B2:調(diào)取相鄰兩次檢測結果,并計算兩次檢測結果中參考點坐標的相對坐標值;
步驟B3:選取所計算相對坐標值中X軸坐標值、Y軸坐標值及Z軸坐標值中絕對值最大者,并將其絕對值與所預設的閾值進行比較,若所述絕對值大于閾值、則判斷移動終端處于非靜止狀態(tài),若所述絕對值小于閾值、則判斷移動終端處于靜止狀態(tài);
步驟B4:判斷呼吸燈處于開啟狀態(tài)還是關閉狀態(tài)。
一種移動終端,包括呼吸燈,其中,所述移動終端還包括:
與所述呼吸燈連接的狀態(tài)檢測模塊,用于檢測移動終端當前狀態(tài);
與所述狀態(tài)檢測模塊連接的狀態(tài)判斷模塊,用于根據(jù)檢測結果判斷移動終端是否處于顯示屏朝下放置且呼吸燈開啟的靜止狀態(tài),若是則發(fā)送第一信號至呼吸燈控制模塊;或是否處于顯示屏朝上放置且呼吸燈關閉的狀態(tài),若是則發(fā)送第二信號至呼吸燈控制模塊;
以及與所述狀態(tài)判斷模塊及呼吸燈連接的呼吸燈控制模塊,用于在接收到狀態(tài)判斷模塊所發(fā)送來的第一信號后關閉呼吸燈,及在接收到狀態(tài)判斷模塊所發(fā)送來的第二信號后開啟呼吸燈。
優(yōu)選方案中,所述的移動終端,其中,所述移動終端還包括:
預設模塊,用于預設一用于定期檢測移動終端狀態(tài)的間隔時間;
所述狀態(tài)檢測模塊具體用于:在到達所預設的間隔時間后,檢測移動終端當前狀態(tài)并記錄檢測結果。
優(yōu)選方案中,所述的移動終端,其中,所述狀態(tài)檢測模塊包括重力傳感器,并通過所述重力傳感器檢測移動終端當前狀態(tài)。
優(yōu)選方案中,所述的移動終端,其中,所述移動終端還包括:
坐標系設置模塊,用于設置移動終端顯示屏左下角為參考點,而顯示屏朝上平放時參考點下方一點為初始點,以所述初始點為原點建立一靜態(tài)坐標系,而以移動終端自帶三維坐標系為動態(tài)坐標系,所述靜態(tài)坐標系以初始點至參考點方向為Z軸正半軸走向,而以參考點至顯示屏右下角方向為X軸正半軸走向,再以參考點至顯示屏左上角為Y軸正半軸走向。
優(yōu)選方案中,所述的移動終端,其中,所述預設模塊還用于:預設一用于判斷移動終端是否處于靜止狀態(tài)的閾值;
所述重力傳感器具體用于:檢測參考點坐標(X1,Y1,Z1);
所述狀態(tài)檢測模塊還包括:參考點坐標存儲區(qū),用于所檢測參考點的坐標進行存儲;
所述狀態(tài)判斷模塊具體包括:
顯示屏朝向判斷單元,用于當所檢測參考點坐標中Z1為負值時,判斷移動終端顯示屏朝下放置;當所檢測參考點坐標中Z1為正值時,判斷移動終端顯示屏朝上放置;
相對坐標值計算單元,用于調(diào)取相鄰兩次檢測結果,并計算兩次檢測結果中參考點坐標的相對坐標值;
靜止狀態(tài)判斷單元,用于選取所計算相對坐標值中X軸坐標值、Y軸坐標值及Z軸坐標值中絕對值最大者,并將其絕對值與所預設的閾值進行比較,若所述絕對值大于閾值、則判斷移動終端處于非靜止狀態(tài),若所述絕對值小于閾值、則判斷移動終端處于靜止狀態(tài);
呼吸燈狀態(tài)判斷單元,用于判斷呼吸燈處于開啟狀態(tài)還是關閉狀態(tài)。
與現(xiàn)有技術相比,本發(fā)明提供的基于移動終端的呼吸燈啟閉控制方法,由于首先檢測移動終端當前狀態(tài)并記錄檢測結果;然后根據(jù)檢測結果判斷移動終端是否處于顯示屏朝下放置且呼吸燈開啟的靜止狀態(tài),或是否處于顯示屏朝上放置且呼吸燈關閉的狀態(tài);并當判斷移動終端處于顯示屏朝下放置且呼吸燈開啟的靜止狀態(tài),控制關閉呼吸燈;而當判斷移動終端處于顯示屏朝上放置且呼吸燈關閉的狀態(tài),控制開啟呼吸燈。使得移動終端可智能判斷移動終端在當前時刻是否需要使用呼吸燈,并在不需要使用時及時關閉以節(jié)省電量;而在需要使用時,及時開啟,以避免短消息或應用提示等未處理信息被忽略,有效解決了現(xiàn)有技術中呼吸燈在未讀短消息或應用提示未被處理前持續(xù)閃爍,而在不必要的情況下造成電量浪費的問題。
附圖說明
圖1是本發(fā)明中基于移動終端的呼吸燈啟閉控制方法較佳實施例的流程示意圖。
圖2是本發(fā)明較佳實施例中移動終端與動態(tài)坐標系的位置關系示意圖。
圖3是本發(fā)明中移動終端較佳實施例的功能原理框圖。
具體實施方式
本發(fā)明提供了一種基于移動終端的呼吸燈啟閉控制方法及移動終端,為使本發(fā)明的目的、技術方案及效果更加清楚、明確,以下參照附圖并舉實例對本發(fā)明進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示,本發(fā)明提供了一種基于移動終端的呼吸燈啟閉控制方法,其包括:
S100、檢測移動終端當前狀態(tài)并記錄檢測結果。
該步驟中所述移動終端當前狀態(tài)包括:移動終端的放置朝向(以顯示屏方向為準)、呼吸燈狀態(tài)(開啟或關閉)及是否為靜止狀態(tài);所述是否為靜止狀態(tài)是指在一定時間內(nèi)移動終端位姿是否發(fā)生變化。
在本發(fā)明較佳實施例中,移動終端當前狀態(tài)的檢測通過設置于移動終端內(nèi)的重力傳感器進行。
重力傳感器屬于新型屬傳感器技術,它采用彈性敏感元件制成懸臂式位移器,與采用彈性敏感元件制成的儲能彈簧來驅(qū)動電觸點,完成從重力變化到電信號的轉(zhuǎn)換。
通過重力傳感器可以測量由于重力引起的加速度,可以計算出設備相對于水平面的傾斜角度,通過分析動態(tài)加速度,可以得出設備移動的方式,這屬于現(xiàn)有技術。而本發(fā)明中通過重力傳感器檢測移動終端的放置朝向是現(xiàn)有技術所未公開且未涉及的,為了實現(xiàn)該目的,本發(fā)明采用了步驟:
S050、設移動終端顯示屏左下角為參考點,而顯示屏朝上平放時參考點下方一點為初始點,以所述初始點為原點建立一靜態(tài)坐標系,而以移動終端自帶三維坐標系為動態(tài)坐標系,所述靜態(tài)坐標系以初始點至參考點方向為Z軸正半軸走向,而以參考點至顯示屏右下角方向為X軸正半軸走向,再以參考點至顯示屏左上角為Y軸正半軸走向。
移動終端自帶三維坐標系可以采用安裝于移動終端的APP中的三維坐標系,如地圖軟件中的三維坐標系等。
移動終端設置顯示屏一面為正面,而另一面則為背面,當移動終端朝上平放時,參考點正下方位于移動終端背面上的點為對應點,參考點與對應點之間的中點為初始點是本發(fā)明的較佳方案。
如圖2所示,圖中A表示顯示屏朝上平放時的移動終端,而圖中a表示顯示屏朝下平放時的移動終端,A1表示顯示屏朝上平放時的移動終端顯示屏左下角即參考點,a1表示顯示屏朝下平放時的參考點。
具體實施時,可設置三軸坐標值由負10至10,以浮點數(shù)為等級單位。
浮點數(shù)是屬于有理數(shù)中某特定子集的數(shù)的數(shù)字表示,在計算機中用以近似表示任意某個實數(shù)。具體的說,這個實數(shù)由一個整數(shù)或定點數(shù)(即尾數(shù))乘以某個基數(shù)(計算機中通常是2)的整數(shù)次冪得到,這種表示方法類似于基數(shù)為10的科學計數(shù)法。
在移動終端顯示屏朝上平放時,動態(tài)坐標系上參考點坐標相對于靜態(tài)坐標系可以為(0,0,9.81)。
在移動終端顯示屏朝下平放時,動態(tài)坐標系上參考點坐標相對于靜態(tài)坐標系可以為(0,0,-9.81)。
當移動終端以Y軸為轉(zhuǎn)軸,向左傾斜時,動態(tài)坐標系的X軸正半軸上的坐標值為負;向右傾斜則為正。
當移動終端以X軸為轉(zhuǎn)軸,向上傾斜時,動態(tài)坐標系的Y軸正半軸上的坐標值為負;向下傾斜則為正。
當然,三維坐標系的建立也可以在以上所述較佳實施例的基礎上,進行其他相應的調(diào)整或變換。
在建立三維坐標系之前或之后,還應進行步驟如下:
S000、預設一用于判斷移動終端是否處于靜止狀態(tài)的閾值。
在本發(fā)明進一步地較佳實施例中,S000還包括:預設一用于定期檢測移動終端狀態(tài)的間隔時間。
而隨著間隔時間的設置,S100可進一步調(diào)整為:在到達所預設的間隔時間后,檢測移動終端當前狀態(tài)并記錄檢測結果。
間隔時間的設置是為了將移動終端的狀態(tài)檢測進一步調(diào)整為了:自動進行的、及時性的檢測方式,使得呼吸燈的開啟與關閉可在移動終端狀態(tài)改變后及時進行控制,省卻了用戶自行調(diào)整或人為進行其他設置的麻煩。
間隔時間的設置,使得該控制方法不同于實時檢測、也不同于人為控制檢測;其相較于實時監(jiān)測更為節(jié)省能量,而相較于人為控制檢測則更為方便簡單且可有效防止用戶遺漏重要信息。
具體實施時,所述S100包括步驟如下:
S110、通過重力傳感器檢測參考點坐標(X1,Y1,Z1)。
此處所述參考點坐標是指在靜態(tài)坐標系下的絕對坐標值。
S120、將所檢測參考點的坐標進行存儲。
參考點坐標的存儲可通過在移動終端內(nèi)的存儲區(qū)域內(nèi)劃分一獨立存儲區(qū)域進行,如在移動終端存儲區(qū)建立一存儲文件夾等方式,該步驟為現(xiàn)有技術,在此不再贅述。
在S100之后,還應進行步驟:
S200、根據(jù)檢測結果判斷移動終端是否處于顯示屏朝下放置且呼吸燈開啟的靜止狀態(tài);或是否處于顯示屏朝上放置且呼吸燈關閉的狀態(tài)。
S300、當判斷移動終端處于顯示屏朝下放置且呼吸燈開啟的靜止狀態(tài),控制關閉呼吸燈。
S400、當判斷移動終端處于顯示屏朝上放置且呼吸燈關閉的狀態(tài),控制開啟呼吸燈。
其中,S200具體可包括:
S210、當所檢測參考點坐標中Z1為負值時,判斷移動終端顯示屏朝下放置;當所檢測參考點坐標中Z1為正值時,判斷移動終端顯示屏朝上放置。
S220、調(diào)取相鄰兩次檢測結果,并計算兩次檢測結果中參考點坐標的相對坐標值。
S230、選取所計算相對坐標值中X軸坐標值、Y軸坐標值及Z軸坐標值中絕對值最大者,并將其絕對值與所預設的閾值進行比較,若該絕對值大于閾值、則判斷移動終端處于非靜止狀態(tài),若該絕對值小于閾值、則判斷移動終端處于靜止狀態(tài)。
檢測的樣例代碼可如下所示:
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor == null) {
return;
}
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
int x = (int) event.values[0];
int y = (int) event.values[1];
int z = (int) event.values[2];
mCalendar = Calendar.getInstance();
long stamp = mCalendar.getTimeInMillis() / 1000l;// 1393844912
textviewX.setText(String.valueOf(x));
textviewY.setText(String.valueOf(y));
textviewZ.setText(String.valueOf(z));
int second = mCalendar.get(Calendar.SECOND);// 53
int px = Math.abs(mX - x);
int py = Math.abs(mY - y);
int pz = Math.abs(mZ - z);
Log.d(TAG, "pX:" + px + " pY:" + py + " pZ:" + pz + " stamp:"
+ stamp + " second:" + second);
int maxvalue = getMaxValue(px, py, pz);
if (maxvalue > 2 && (stamp - lasttimestamp) > 30) {
lasttimestamp = stamp;
Log.d(TAG, " sensor isMoveorchanged....");
textviewF.setText("檢測手機在移動..");
}else {
textviewF.setText("檢測手機在靜止狀態(tài)..");
}
mX = x;
mY = y;
mZ = z;
}
}
S240、判斷呼吸燈處于開啟狀態(tài)還是關閉狀態(tài)。
如圖3所示,本發(fā)明還提供了一種移動終端,其包括:呼吸燈400,
與所述呼吸燈連接的狀態(tài)檢測模塊100,用于檢測移動終端當前狀態(tài)并記錄檢測結果,具體如上述方法實施例所述;
與所述狀態(tài)檢測模塊連接的狀態(tài)判斷模塊200,用于根據(jù)檢測結果判斷移動終端是否處于顯示屏朝下放置且呼吸燈開啟的靜止狀態(tài),若是則發(fā)送第一信號至呼吸燈控制模塊;或是否處于顯示屏朝上放置且呼吸燈關閉的狀態(tài),若是則發(fā)送第二信號至呼吸燈控制模塊,具體如上述方法實施例所述;
以及與所述狀態(tài)判斷模塊及呼吸燈連接的呼吸燈控制模塊300,用于在接收到狀態(tài)判斷模塊所發(fā)送來的第一信號后關閉呼吸燈,及在接收到狀態(tài)判斷模塊所發(fā)送來的第二信號后開啟呼吸燈,具體如上述方法實施例所述。
本發(fā)明進一步地較佳實施例中,所述移動終端還包括:
預設模塊,用于預設一用于定期檢測移動終端狀態(tài)的間隔時間,具體如上述方法實施例所述;
所述狀態(tài)檢測模塊具體用于:在到達所預設的間隔時間后,檢測移動終端當前狀態(tài)并記錄檢測結果,具體如上述方法實施例所述。
本發(fā)明進一步地較佳實施例中,所述狀態(tài)檢測模塊包括重力傳感器,并通過所述重力傳感器檢測移動終端當前狀態(tài),具體如上述方法實施例所述。
本發(fā)明進一步地較佳實施例中,所述移動終端還包括:
坐標系設置模塊,用于設置移動終端顯示屏左下角為參考點,而顯示屏朝上平放時參考點下方一點為初始點,以所述初始點為原點建立一靜態(tài)坐標系,而以移動終端自帶三維坐標系為動態(tài)坐標系,所述靜態(tài)坐標系以初始點至參考點方向為Z軸正半軸走向,而以參考點至顯示屏右下角方向為X軸正半軸走向,再以參考點至顯示屏左上角為Y軸正半軸走向,具體如上述方法實施例所述。
本發(fā)明進一步地較佳實施例中,所述預設模塊還用于:預設一用于判斷移動終端是否處于靜止狀態(tài)的閾值,具體如上述方法實施例所述;
所述重力傳感器具體用于:檢測參考點坐標(X1,Y1,Z1),具體如上述方法實施例所述;
所述狀態(tài)檢測模塊還包括:參考點坐標存儲區(qū),用于所檢測參考點的坐標進行存儲,具體如上述方法實施例所述;
所述狀態(tài)判斷模塊具體包括:
顯示屏朝向判斷單元,用于當所檢測參考點坐標中Z1為負值時,判斷移動終端顯示屏朝下放置;當所檢測參考點坐標中Z1為正值時,判斷移動終端顯示屏朝上放置,具體如上述方法實施例所述;
相對坐標值計算單元,用于調(diào)取相鄰兩次檢測結果,并計算兩次檢測結果中參考點坐標的相對坐標值,具體如上述方法實施例所述;
靜止狀態(tài)判斷單元,用于選取所計算相對坐標值中X軸坐標值、Y軸坐標值及Z軸坐標值中絕對值最大者,并將其絕對值與所預設的閾值進行比較,若該絕對值大于閾值、則判斷移動終端處于非靜止狀態(tài),若該絕對值小于閾值、則判斷移動終端處于靜止狀態(tài),具體如上述方法實施例所述;
呼吸燈狀態(tài)判斷單元,用于判斷呼吸燈處于開啟狀態(tài)還是關閉狀態(tài),具體如上述方法實施例所述。
應當理解的是,本發(fā)明的應用不限于上述的舉例,對本領域普通技術人員來說,可以根據(jù)上述說明加以改進或變換,所有這些改進和變換都應屬于本發(fā)明所附權利要求的保護范圍。