2016-04-15 7 views
1

Erstellen Sie eine einfache Torch-Anwendung, die auf die Kamera Flash setzen und ablegen kann. Diese Anwendung sollte eine einfache Benutzeroberfläche haben, die den Flash auflegen und auch ausschalten kann. Nach 1 Minute ununterbrochener Benutzung sollte die Benutzerschnittstelle den Benutzer auffordern, den Brenner weiter benutzen zu wollen. Wenn der Benutzer Ja sagt, soll die Fackel für eine weitere Minute eingeschaltet bleiben und dieser Zyklus wiederholt werden. Wenn der Benutzer Nein sagt, wird die Fackel hinausgeschoben.Ich mache eine Fackel App in android

Erstellen einer einfachen Fackel App ist einfach und ich habe Fackel app gemacht, aber die zweite Sache, die in der Frage erwähnt wird, um eine Eingabeaufforderung nach 1 Minute, die ich nicht verstehen kann jemand helfen kann?

hier ist mein Code der Taschenlampe kann mir jemand sagen, wo man es ändern kann.

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.content.Context; 
import android.content.pm.PackageManager; 
import android.hardware.Camera; 
import android.hardware.Camera.Parameters; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

public class MainActivity extends AppCompatActivity 
{ 
    `enter code here`private boolean isLightOn=false; 
    private Camera camera; 
    private Button btn; 


    @Override 
    protected void onStop() 
    { 
     super.onStop(); 

     if(camera!= null) 
      camera.release(); 
    } 



    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     btn=(Button)findViewById(R.id.button); 
     Context context=this; 

     PackageManager pk= context.getPackageManager(); 

     if(!pk.hasSystemFeature(PackageManager.FEATURE_CAMERA)) 
     { 
      Log.e("err","Device has no camera"); 
      return; 
     } 
     camera=camera.open(); 
     final Parameters p= camera.getParameters(); 
     btn.setOnClickListener(new OnClickListener() 
     { 
     @Override 
     public void onClick(View v) 
     { 

      if(isLightOn) 
      { 
       Log.i("info","FlashLight is turn off"); 
       p.setFlashMode(Parameters.FLASH_MODE_OFF); 
       camera.setParameters(p); 
       camera.stopPreview(); 
       isLightOn=false; 

      } 
      else 
      { 
       Log.i("info","FlashLight is turn On!"); 
       p.setFlashMode(Parameters.FLASH_MODE_TORCH); 
       camera.setParameters(p); 
       camera.startPreview(); 
       isLightOn=true; 

      } 
     } 

     }); 

    } 
} 
+0

Haben Sie Alarmmanager und Alarm Dialoge lesen? – Yashasvi

Antwort

0
 if(!pk.hasSystemFeature(PackageManager.FEATURE_CAMERA)) 
      { 
       Log.e("err","Device has no camera"); 
       return; 
      } 
      camera=camera.open(); 
      final Parameters p= camera.getParameters(); 
      btn.setOnClickListener(new OnClickListener() 
      { 
      @Override 
      public void onClick(View v) 
      { 

       if(isLightOn) 
       { 
        Log.i("info","FlashLight is turn off"); 
        p.setFlashMode(Parameters.FLASH_MODE_OFF); 
        camera.setParameters(p); 
        camera.stopPreview(); 
        isLightOn=false; 

       } 
       else 
       { 
        Log.i("info","FlashLight is turn On!"); 
        p.setFlashMode(Parameters.FLASH_MODE_TORCH); 
        camera.setParameters(p); 
        camera.startPreview(); 
        isLightOn=true; 
    new Handler().postDelayed(new Runnable() { 
         // Using handler with postDelayed called runnable run method 
         @Override 
         public void run() { 
     //Show your Alert box here 
     new AlertDialog.Builder(context) // you can use getApplicationContext() or your activityname.this as context 
      .setTitle("Do You Want to continue") 
      .setMessage("Are you sure you want to continue?") 
      .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        //Do nothing, Torch continues 
       } 
      }) 
      .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        // torch off 
Log.i("info","FlashLight is turn off"); 
       p.setFlashMode(Parameters.FLASH_MODE_OFF); 
       camera.setParameters(p); 
       camera.stopPreview(); 
       isLightOn=false; 
       } 
      }) 
      .setIcon(android.R.drawable.ic_dialog_alert) 
      .show(); 

     } 
        }, 60000); //60000milliseconds = 60 sec = 1min. 

     // It will show alertbox after 1 min . 

       } 
      } 

      }); 

     } 
    } 
+0

Ich habe den Code meiner Taschenlampe App können Sie mir sagen, wo ich die Änderungen vornehmen sollte –

+0

Okay. Warten. Ich werde helfen. Bitte gib mir etwas Zeit. –

+0

Antwort aktualisiert. –

0

Um einen Code nach einer gewissen Verzögerung ausgeführt werden, können Sie wie folgt vorgehen (wo 1000 ist die Verzögerung in Millisekunden):

new Handler().postDelayed(new Runnable() 
{ 
    @Override 
    public void run() 
    { 
     // code to show prompt goes here 
    } 
}, 1000); 

Sie diese in ein Verfahren machen, die jeweils aufgerufen werden Zeit bestätigt der Benutzer die Aufforderung.

0

Für Dialogfeld überprüfen this.

Überprüfen Sie this Link für Flash On/Off.

für Flash Aus nach einer Minute verwenden Handler.

Handler handler = new Handler(); 

final Runnable r = new Runnable() { 
    public void run() { 
     //Turn off flash 
    } 
}; 

handler.postDelayed(r, 1000); 
Verwandte Themen