2017-04-06 6 views
1

私はアプリケーションを作成したいと思いますし、カメラアプリケーションが開いているかどうか、カメラを使用する 他のアプリがカメラを開こうとすると、どうすればそれを検出できますか?他のアプリがカメラを開こうとすると、カメラを開く前に放送を受信したいのですが、どうすればいいですか? 私もこれを試してみました。アンドロイドは、他のアプリがカメラショーのアラートダイアログを開こうとするかどうかを検出します

public boolean isCameraUsebyApp() { 
    Camera camera = null; 
    try { 
     camera = Camera.open(); 
    } catch (RuntimeException e) { 
     return true; 
    } finally { 
     if (camera != null) camera.release(); 
    } 
    return false; 
} 

しかし、そのalwysがtrueを返します。開いているかいないが、カメラのカメラには、放送カメラ2 APIのAvaiabilityリスナーがありません

答えて

1

は、

CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE); 

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    manager.registerAvailabilityCallback(new CameraManager.AvailabilityCallback() { 
     @Override 
     public void onCameraAvailable(String cameraId) { 
      super.onCameraAvailable(cameraId); 
      //Do your work 
     } 

     @Override 
     public void onCameraUnavailable(String cameraId) { 
      super.onCameraUnavailable(cameraId); 
      //Do your work 
     } 
    }, mHandler); 
} 

その唯一の21と21以下の場合

の上にあなたのコードを使用することができ、コードの下に使用し

public boolean isCameraInUse() { 
    Camera c = null; 
    try { 
     c = Camera.open(); 
    } catch (RuntimeException e) { 
     return true; 
    } finally { 
     if (c != null) c.release(); 
    } 
    return false; 
} 
+0

どのアプリがカメラを使用しているか確認できますか? –

+0

そのアプリはバックグラウンドでカメラを使用している場合のみ、私たちは利用可能なカメラかどうかを確認することができます –

+0

。それをどうやって知ることができますか? –

関連する問題