2017-03-04 7 views

答えて

0

私はあなたがthisウェブサイト上のコルドバのプラグインのリストに見て、あなたが画面状態に

編集をチェックするために使用できる任意のプラグインを見つけることができません、それを行うことはできません怖いです:あなたがへの道を知っていればこれをコードネームプラグインを作成してあなたのアプリにアタッチすることができますが、現時点で利用可能なプラグインはそうすることはできません。

+0

私は恐れますが、まだ誰かが私の前でそれをしたことを望んでいます –

0

"mLockScreenShown" & "のようなプロパティがあります。 mWakefulness "と表示され、デバイスのロック画面の状態が表示されます。 adbシェルでdumpsys activityコマンドを実行すると、アンドロイドの活動に関するほとんどすべてが得られます。ここでは、アンドロイドデバイスの画面の状態を示す完全なJava APIがあります。

public static String getScreenState() throws IOException { 
    Process process = null; 
    BufferedReader buffRead; 
    String processString = ""; 
    int sleepMode = -1; 
    int awakeMode = -1; 
    String screenState = ""; 

    try { 
     String command = System.getProperty("java.home") + File.separator + "tools" + File.separator 
       + "adb.exe shell dumpsys activity | grep mLockScreenShown"; 
     process = Runtime.getRuntime().exec(command); 

     buffRead = new BufferedReader(new InputStreamReader(process.getInputStream()), 1024); 
     while ((processString = buffRead.readLine()) != null) { 
      if (processString.split("mSleeping=").length > 1) { 
       if (processString.split("mSleeping=")[1].startsWith("true")) 
        sleepMode = 0; 
       else if (processString.split("mSleeping=")[1].startsWith("false")) 
        sleepMode = 1; 
      } 
     } 

     try { 
      command = System.getProperty("java.home") + File.separator + "tools" + File.separator 
        + "adb.exe shell dumpsys activity | grep mWakefulness"; 
      process = Runtime.getRuntime().exec(command); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     processString = ""; 
     buffRead = new BufferedReader(new InputStreamReader(process.getInputStream()), 1024); 
     while ((processString = buffRead.readLine()) != null) { 
      if (processString.split("mWakefulness=").length > 1) { 
       if (processString.split("mWakefulness=")[1].startsWith("Awake")) 
        awakeMode = 0; 
       else if (processString.split("mWakefulness=")[1].startsWith("Asleep") 
         || processString.split("mWakefulness=")[1].startsWith("Dozing")) 
        awakeMode = 1; 
      } 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    if (sleepMode == 0 && awakeMode == 1) { 
     screenState = "SCREEN_OFF"; 
    } else if (sleepMode == 0 && awakeMode == 0) { 
     screenState = "SCREEN_LOCK"; 
    } else if (sleepMode == 1 && awakeMode == 0) { 
     screenState = "SCREEN_ON"; 
    } 

    return screenState; 
} 
関連する問題