2016-11-04 9 views
0

デバイスがフラッシュをサポートしているかどうかを確認してif文を作成しました。誰もがこれを解決するか知っていますか? hasFlashは未知のクラスであると言われています。 AndroidManifest.xmlをデバイスが懐中電灯をサポートしているかどうかを確認した後、if文内にブール値を入れることはできません

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-feature android:name="android.hardware.camera" /> 

import android.content.DialogInterface; 
import android.content.pm.PackageManager; 
import android.hardware.camera2.CameraManager; 
import android.provider.Settings; 
import android.support.v7.app.AlertDialog; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.ImageButton; 


import static android.content.DialogInterface.*; 

public class Flashlight extends AppCompatActivity { 
private CameraManager cm; 
private ImageButton flashlightButton; 
private boolean flashlightOnOrOff; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_flashlight); 
    flashlightButton = (ImageButton) findViewById(R.id.flashOnOffButton); 
    flashlightOnOrOff = false; 
} 

//Error if device does not have flashlight 
boolean hasFlash = this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH); 
//This is where i get the error 
if(hasFlash==false) 

{ 
    AlertDialog dialo = new AlertDialog.Builder(Flashlight.this).create(); 
    dialo.setTitle("Error"); 
    dialo.setMessage("Sorry your device does not have flashlight"); 
    dialo.setButton(BUTTON_POSITIVE, "OK", new OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialogInterface, int i) { 
      finish(); 
     } 
    }); 
    dialo.show(); 


} 




//What flashlight does on Stop 
@Override 
protected void onStop() { 
    super.onStop(); 
} 

//What flashlight does on Pause 
@Override 
protected void onPause() { 
    super.onPause(); 
} 

//What flashlight does on Resume 
@Override 
protected void onPostResume() { 
    super.onPostResume(); 
} 

}

+1

これは何ですか? – iheanyi

+0

'hasFlash == false'を'!hasFlash'に簡略化することができます –

+0

同じ行に複数のエラーがあります:1.予期しないトークン2.Unknownクラス 'hasFlash 3. Indentifieが必要です – Kenertj

答えて

1

コードを試してみては機能ではありません。それをあなたの上に置くことを意味しましたか?その場合は、閉じ括弧が間違った場所にあります。

@Override protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_flashlight); 
    flashlightButton = (ImageButton) findViewById(R.id.flashOnOffButton); 
    flashlightOnOrOff = false; 
} // REMOVE THIS 

//Error if device does not have flashlight 
    boolean hasFlash = this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH); 
    if(hasFlash==false) 
    { 
     AlertDialog dialo = new AlertDialog.Builder(Flashlight.this).create(); 
     dialo.setTitle("Error"); 
     dialo.setMessage("Sorry your device does not have flashlight"); 
     dialo.setButton(BUTTON_POSITIVE, "OK", new OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialogInterface, int i) { 
       finish(); 
      } 
     }); 
     dialo.show(); 
    } 
} // THIS IS WHERE YOUR ONCREATE CLOSING BRACE GOES 
+0

これは私の問題を修正した、ありがとう! – Kenertj

-1

入れ、次のアクセス許可の詳細については、あなたのMainActivity.java

package com.stackoverflow.myapplication; 

import android.content.DialogInterface; 
import android.content.pm.PackageManager; 
import android.support.v7.app.AlertDialog; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import static android.content.DialogInterface.BUTTON_POSITIVE; 

public class MainActivity extends AppCompatActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     boolean hasFlash = this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH); 
     AlertDialog dlg = new AlertDialog.Builder(this).create(); 
     if (hasFlash) { 
      dlg.setTitle("Done"); 
      dlg.setMessage("Your device does have flashlight"); 
     } 
     else { 
      dlg.setTitle("Error!"); 
      dlg.setMessage("Sorry your device does not have flashlight!"); 
     } 

     dlg.setButton(BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialogInterface, int i) { 
       //finish(); 
      } 
     }); 
    dlg.show(); 
    } 

} 

の上に輸入次のPutはhere

を見て
+0

ありがとう、私はすでにAndroidManifestの2を持っています。 – Kenertj

+0

関数を使用する前にMainActivity.javaの上にimport文を追加してください。 –

+0

エラーは、権限またはインポートでは明確ではありません。 – iheanyi

0

質問にこの

hasFlash = getApplicationContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH); 

if (!hasFlash) {  
// device doesn't support flash  
// Show alert message and close the application 

    AlertDialog alert = new AlertDialog.Builder(MainActivity.this).create();  
    alert.setTitle("Error");  
    alert.setMessage("Sorry, your device doesn't support flash light!"); 

    alert.setButton("OK", new DialogInterface.OnClickListener() {  
    public void onClick(DialogInterface dialog, int which) { 

     // closing the application  
     finish();  
    } 

    }); 

    alert.show();  
    return; 

} 
+0

これはどのように問題を解決しますか? – iheanyi

関連する問題