title: How to set EXPOSURE_TIME and FRAME_DURATION, CaptureRequest.Builder.set(CaptureRequest.SENSOR_EXPOSURE_TIME,x) dose not work
body: <p>I want to adjust the exposure time and frame duration of an Adroid phone. I read some papers saying Android doesn't provide exposure time setting API. I tried using HTC m8x phone whose camera itself support different exposure time from 4 to 1/8000, so I guess there should some way to change it in an app.</p>
  
  <p>The method <code>get(CaptureRequest.EXPOSURE_TIME)</code> returns null. After I used <code>CaptureRequest.Builder.set(CaptureRequest.SENSOR_EXPOSURE_TIME,x)</code>, the <code>CaptureRequest.SENSOR_EXPOSURE_TIME</code> becomes <code>x</code>, but the preview effect in the phone doesn't change.</p>
  
  <p>I checked the authority of HTC m8x, the code is as :</p>
  
  <pre><code>Activity activity = getActivity();
  CameraManager manager =(CameraManager)activity.getSystemService(Context.CAMERA_SERVICE);
  for (String cameraId : manager.getCameraIdList()) {
    CameraCharacteristics characteristics= manager.getCameraCharacteristics(cameraId);
    // We don't use a front facing camera in this sample.
    if (characteristics.get(CameraCharacteristics.LENS_FACING)== CameraCharacteristics.LENS_FACING_FRONT) {
      continue;
    }
    int level =   characteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL);
    boolean hasFullLevel
                   = (level ==   CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_FULL);
  
  
  
    int[] capabilities = characteristics.get(CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES);
    int syncLatency = characteristics.get(CameraCharacteristics.SYNC_MAX_LATENCY);
    boolean hasManualControl = hasCapability(capabilities,CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR);
    boolean hasEnoughCapability = hasManualControl &amp;&amp;syncLatency == CameraCharacteristics.SYNC_MAX_LATENCY_PER_FRAME_CONTROL;
  
    // All these are guaranteed by
    // CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_FULL, but checking for only
    // the things we care about expands range of devices we can run on
    // We want:
    //  - Back-facing camera
    //  - Manual sensor control
    //  - Per-frame synchronization (so that exposure can be changed every frame)
    if ( hasFullLevel !! hasEnoughCapability) {
      mCameraId = cameraId;
      return;}
    }
  </code></pre>
  
  <p>There is no camera id returned.</p>
  
  <pre><code>characteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL) =2;
  CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_FULL = 1;
  CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR = 1;
  capabilities =0;
  characteristics.get(CameraCharacteristics.SYNC_MAX_LATENCY) =-1
  CameraCharacteristics.SYNC_MAX_LATENCY_PER_FRAME_CONTROL = 0;
  </code></pre>
  
  <p>So does this show I don't have the authority to change exposure time of HTC m8x phone? Will root the phone help? </p>