【问题标题】:flashlight not working,when device screen is off/sleep (android studio)手电筒不工作,当设备屏幕关闭/睡眠时(android studio)
【发布时间】:2016-07-23 12:33:43
【问题描述】:

我创建了一个手电筒应用程序,手电筒工作。但是当设备屏幕电源关闭/睡眠时,手电筒不起作用。 我希望手电筒继续打开,当设备屏幕处于关闭/睡眠状态时..

我是这个网站的新手,我不知道如何上传完整代码, 所以我在我的博客网站上传代码

manifest code

<application        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:supportsRtl="true"        android:theme="@style/AppTheme">
    <activity android:name=".MainActivity" android:noHistory="true"            android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".About" android:noHistory="true"            android:screenOrientation="portrait"            >

    </activity>
</application>
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
<uses-feature android:name="android.hardware.Camera"></uses-feature>

please see full code here

【问题讨论】:

    标签: android performance android-studio flashlight


    【解决方案1】:

    在 if(!isOn) 块内添加以下代码:

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    

    而且屏幕永远不会休眠。 然后在该语句的 else 块中,添加以下代码,重新启用睡眠功能:

    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    

    如果你在最后使用 onStop() 方法在用户关闭应用时关闭相机,请添加相同的代码getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 也在那个街区。

    【讨论】:

      【解决方案2】:
      MainActivity.java code 
      
      public class MainActivity extends AppCompatActivity {
      ImageButton imageButton;
      Camera camera;
      Camera.Parameters parameters;
      boolean isflash=false;
      boolean isOn=false;
      

      @覆盖 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageButton=(ImageButton) findViewById(R.id.imageButton); if(getApplicationContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) { 相机=Camera.open(); 参数=camera.getParameters(); isflash=真; } imageButton.setOnClickListener(new View.OnClickListener(){

              @Override
              public void onClick(View v){
      
                  if (isflash)
                  {
                      if (!isOn)
                      {
                          imageButton.setImageResource(R.drawable.on);
                          parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
                          camera.setParameters(parameters);
                          camera.startPreview();
                          isOn=true;
      
                      }
                      else
                      {
                          imageButton.setImageResource(R.drawable.off);
                          parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
                          camera.setParameters(parameters);
                          camera.stopPreview();
                          isOn=false;
                      }
      
                  }
                  else
                  {
                      AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
                      builder.setTitle("Error........");
                      builder.setMessage("Flashlight is not Available on this device...");
                      builder.setPositiveButton("Ok",new DialogInterface.OnClickListener(){
                      @Override
                      public void onClick(DialogInterface dialog,int which){
                          dialog.dismiss();
                          finish();
      
                      }
                  });
                      AlertDialog alertDialog=builder.create();
                      alertDialog.show();
                  }
              }
      
          });
      }
      
      @Override
      protected void onStop() {
          super.onStop();
          if (camera!=null)
          {
              camera.release();
              camera=null;
          }
      }
      

      }

      【讨论】:

        猜你喜欢
        • 2019-03-18
        • 2017-08-30
        • 2017-12-12
        • 1970-01-01
        • 1970-01-01
        • 2011-11-13
        • 1970-01-01
        • 1970-01-01
        • 2011-06-22
        相关资源
        最近更新 更多