Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android手电筒应用程序不适用于galaxy S1和Droid X_Android_Led_Flashlight - Fatal编程技术网

Android手电筒应用程序不适用于galaxy S1和Droid X

Android手电筒应用程序不适用于galaxy S1和Droid X,android,led,flashlight,Android,Led,Flashlight,我的手电筒应用程序可以与S2 S3和其他几款android手机配合使用,没有S1那么先进,但由于某些原因,无法打开S1s闪光灯。droid X和其他几款熟悉兼容的机器人也出现了这个问题。代码如下 public class FlashLightActivity extends Activity { private Camera mCamera; private Boolean mFlashlight = false; private Boolean sound = t

我的手电筒应用程序可以与S2 S3和其他几款android手机配合使用,没有S1那么先进,但由于某些原因,无法打开S1s闪光灯。droid X和其他几款熟悉兼容的机器人也出现了这个问题。代码如下

  public class FlashLightActivity extends Activity {

    private Camera mCamera;
    private Boolean mFlashlight = false;
    private Boolean sound = true;

    private ImageButton button;

    private static MediaPlayer mediaPlayer;

    boolean flashInstalled = true;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_flashlight);

        AdView ad = (AdView) findViewById(R.id.adView);
        ad.loadAd(new AdRequest());

        button = (ImageButton) findViewById(R.id.onoff);

        mediaPlayer = new MediaPlayer();

        Context context = this;
        PackageManager pm = context.getPackageManager();

        // if device support camera?
        if (!pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
            Log.e("err", "Device has no camera!");
            Toast.makeText(this, "Your device does not have FlashLight",
                    Toast.LENGTH_LONG).show();
            return;
        }

        try {
            // Checking if flashplayer is available
            ApplicationInfo ai = pm.getApplicationInfo("com.adobe.flashplayer",
                    0);
            if (ai != null)
                flashInstalled = true;
        } catch (NameNotFoundException e) {
            flashInstalled = false;
        }

        button.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {

                if (mCamera != null) {
                    Parameters params = mCamera.getParameters();
                    if (mFlashlight) {
                        params.setFlashMode(Parameters.FLASH_MODE_OFF);
                        button.setImageResource(R.drawable.off_icon);
                        mFlashlight = false;
                    } else {
                        params.setFlashMode(Parameters.FLASH_MODE_TORCH);
                        button.setImageResource(R.drawable.on_icon);
                        mediaPlayer = MediaPlayer.create(
                                FlashLightActivity.this, R.raw.boom);
                        if (mediaPlayer != null && mediaPlayer.isPlaying()) {
                            mediaPlayer.stop();
                        }

                        if (sound) {

                            mediaPlayer.stop();
                            mediaPlayer = null;
                        } else {
                            mediaPlayer.start();

                        }
                        v.setKeepScreenOn(true);

                        mFlashlight = true;
                    }
                    mCamera.setParameters(params);
                }
            }

        });

    }

    @Override
    public void onResume() {
        super.onResume();

        SharedPreferences preferences = getSharedPreferences("pref",
                MODE_PRIVATE);
        sound = preferences.getBoolean("sound", false);

        if (mFlashlight) {
            button.setImageResource(R.drawable.on_icon);
        } else {
            button.setImageResource(R.drawable.off_icon);
        }

        try {
            this.mCamera = Camera.open();
        } catch (Exception e) {
        }
    }

    @Override
    public void onPause() {
        super.onPause();

        if (this.mCamera != null) {
            this.mCamera.release();
            this.mCamera = null;
        }
        this.mFlashlight = false;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_tabs, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.menu_settings:
            Intent menuIntent = new Intent(this, MenuActivity.class);
            startActivity(menuIntent);

            return true;

        default:
            return super.onOptionsItemSelected(item);

        }

    }
}

我发现在DroidX上唯一有效的是Siddhpura Amit在下面的回答中给出的代码:。他检查了制造商,看看里面是否有字符串“motorola”。如果有,他有特殊的代码可以打开或关闭闪光灯LED。我可以验证它是否工作,因为我有一个摩托罗拉Droid X,这是我在应用程序中使用的代码。

有两件事:1。这在我的三星Galaxy SII上不起作用(天知道为什么,因为我正试图让它自己起作用。我的东西在Sony XPeria S上起作用,但在SGS II上不起作用)。2.你是在假设,所有的手机都支持闪光灯模式,但也有一些不支持。你试过打开闪光灯吗?你试过别人的手电筒应用程序吗?如果其他应用程序在您的SG SI上工作,那么很可能您只是缺少了一些东西:)