2017-11-16 4 views

答えて

0

これについては、まず機能を備えたアプリを見つけて、それに対応するPIDを見つけることです。あなたがrootでないなら、私はシステムサービスを受けることは可能ではないと思います。また、pidを取得することは困難です。 これを見てくださいgithub link .ItはAndroid Nの下でのみ動作します。

アプリはマニフェストでハードウェアを使用するための許可を必要としています。 たとえば、音声を録音するにはandroid.permission.RECORD_AUDIO、カメラを使用するにはandroid.permission.CAMERAを使用します。

許可の詳細については、この公式google docをご覧ください。

String[] permissions = context.getPackageManager().getPackageInfo("Enter Your PackageName Here", PackageManager.GET_PERMISSIONS) 
.requestedPermissions 

for (String permission : permissions) { 
    if(permission.equals("hardware permission like camera or record audio")){ 
     //Do Stuff here 
     //Use the methods given in the gihtub link above to get PID 
     //Below code is take from the github link given above 
     List<AndroidAppProcess> processes =AndroidProcesses.getRunningAppProcesses(); 

     for (AndroidAppProcess process : processes) { 
      // Get some information about the process 
      String processName = process.name; 

      Stat stat = process.stat(); 
      int pid = stat.getPid(); 
      int parentProcessId = stat.ppid(); 
      long startTime = stat.stime(); 
      int policy = stat.policy(); 
      char state = stat.state(); 

      Statm statm = process.statm(); 
      long totalSizeOfProcess = statm.getSize(); 
      long residentSetSize = statm.getResidentSetSize(); 

      PackageInfo packageInfo = process.getPackageInfo(context, 0); 
      String appName = packageInfo.applicationInfo.loadLabel(pm).toString(); 
     } 
    } 
} 

手動でadbシェルを実行し、対応するuidが実行されているかどうかを確認する場合は手動でチェックします。

関連する問題