2016-05-25 8 views
0

enter image description hereどのようにAndroidデバイスを検出するには、すべてのSDKバージョン(すべてのデバイス)の仮想ホームボタンまたは物理的なホームボタンがプログラム的に含まれていますか?

一部のデバイスに以下のように仮想ホームボタンが含まれており、いくつかの他のデバイスの質問はどのキーが含まれているデバイスを見つける方法ですmodel.myサムスンデュオのような物理ホームボタンが含まれています。

答えて

0
adb shell getevent -lp 

イベントの可能性のある入力デバイスのリストが表示されます。

KEY_VOLUMEUPKEY_VOLUMEDOWNまたは少なくともKEY_POWERを含むキーデバイスまでスクロールします。

KEY_HOMEPAGEまたはKEY_HOMEと表示されている場合、ボタンは物理的です。

そうでない場合は仮想です。 Javaでの取り扱い

try { 
     StringBuilder device_folder = new StringBuilder(); 
     ArrayList<String> command_list2 = new ArrayList<String>(); 
     command_list2.add("getevent"); 
     command_list2.add("-lp"); 

     ProcessBuilder process_builder2 = new ProcessBuilder().command(command_list2).redirectErrorStream(false); 
     Process process = process_builder2.start(); 
     BufferedReader buffered_reader2 = new BufferedReader(new InputStreamReader(process.getInputStream())); 

     String line = ""; 
     while ((line = buffered_reader2.readLine()) != null) { 
      device_folder.append(line + "\n");      
     } 

     if (device_folder.toString().contains("KEY_HOMEPAGE") 
      || device_folder.toString().contains("KEY_HOME")) { 
      //physical button 
     } 

     else { 
      //virtual button 
     } 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
+0

私はコマンドが得意ではないです申し訳ありませんが、あなたは – user3746018

+0

があなたのjavaファイルをチェックインまたはadbのシェルを使用して、手動でそれを実行しますかアンドロイドporgramaticallyで私を説明してくださいだろうか? –

+0

私はJavaファイルのみをチェックしたい – user3746018

関連する問題