Autore Topic: Problema accensione Flash  (Letto 750 volte)

Offline cyber_devil

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Nexus S CyanogenMod 10
  • Sistema operativo:
    Windows 7
Problema accensione Flash
« il: 20 Febbraio 2013, 20:45:54 CET »
0
Salve a tutti, oggi vorrei chiedervi aiuto per la risoluzione di un semplice (ma per me complesso) dilemma. Stò implementando una app che ha necessità di accendere e spegnere il flash della fotocamera. Ho trovato in rete un infinità di soluzioni, ma nulla. Ecco cosa ho utilizzato:

Codice (Java): [Seleziona]
//accensione
Camera cam = Camera.open();    
Parameters p = cam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
cam.setParameters(p);
cam.startPreview();
//spegnimento
  cam.stopPreview();
  cam.release();

Ho inserito i permessi sia per il flash che per la camera. Ho visto in rete che alcuni terminali (come il mio Nexus) hanno necessita di un Callback più SurfaceView, ma non trovato molte info a riguardo. Suggerimenti ?
Grazie in anticipo

Offline KiwiJuiceTM

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Play Store ID:
    KiwiJuice™
  • Sistema operativo:
    Mac OS X 10.7.4
Re:Problema accensione Flash
« Risposta #1 il: 29 Aprile 2014, 19:58:00 CEST »
0
Ciao,

ho il tuo stesso problema. Hai risolto??

Offline antonio1368

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    Windows 10
Re:Problema accensione Flash
« Risposta #2 il: 07 Settembre 2015, 17:07:44 CEST »
0
Identico problema...dice che Camera è deprecato...dipende da questo?

Offline Damiani Programmer

Re:Problema accensione Flash
« Risposta #3 il: 08 Ottobre 2015, 22:46:45 CEST »
0
Identico problema...dice che Camera è deprecato...dipende da questo?

La Camera ti parte tranquillamente sul telefono? Posta il codice che usi tu
DAMIANI PROGRAMMER: TANTE APPLICAZIONI PER ANDROID!

www.facebook.com/damianiprogrammer

Offline xixietto

Re:Problema accensione Flash
« Risposta #4 il: 08 Ottobre 2015, 23:33:48 CEST »
0
Salve dovrebbe essere così
Codice (Java): [Seleziona]
public class FlashlightWidgetProvider extends AppWidgetProvider {

        @Override
        public void onUpdate(Context context, AppWidgetManager appWidgetManager,
                        int[] appWidgetIds) {

                Intent receiver = new Intent(context, FlashlightWidgetReceiver.class);
                receiver.setAction("COM_FLASHLIGHT");
                receiver.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);
                PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, receiver, 0);

                RemoteViews views = new RemoteViews(context.getPackageName(),
                                R.layout.widget_layout);
                views.setOnClickPendingIntent(R.id.button, pendingIntent);

                appWidgetManager.updateAppWidget(appWidgetIds, views);

        }
}

Codice (Java): [Seleziona]
public class FlashlightWidgetReceiver extends BroadcastReceiver {
            private static boolean isLightOn = false;
            private static Camera camera;

            @Override
            public void onReceive(Context context, Intent intent) {
                    RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout);

                    if(isLightOn) {
                            views.setImageViewResource(R.id.button, R.drawable.off);
                    } else {
                            views.setImageViewResource(R.id.button, R.drawable.on);
                    }

                    AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
                    appWidgetManager.updateAppWidget(new ComponentName(context,     FlashlightWidgetProvider.class),
                                                                                     views);

                    if (isLightOn) {
                            if (camera != null) {
                                    camera.stopPreview();
                                    camera.release();
                                    camera = null;
                                    isLightOn = false;
                            }

                    } else {
                            // Open the default i.e. the first rear facing camera.
                            camera = Camera.open();

                            if(camera == null) {
                                    Toast.makeText(context, R.string.no_camera, Toast.LENGTH_SHORT).show();
                            } else {
                                    // Set the torch flash mode
                                    Parameters param = camera.getParameters();
                                    param.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
                                    try {
                                            camera.setParameters(param);
                                            camera.startPreview();
                                            isLightOn = true;
                                    } catch (Exception e) {
                                            Toast.makeText(context, R.string.no_flash, Toast.LENGTH_SHORT).show();
                                    }
                            }
                    }
            }
    }

Codice (Java): [Seleziona]
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
Codice (Java): [Seleziona]
<receiver android:name=".FlashlightWidgetProvider" android:icon="@drawable/on" android:label="@string/app_name">
         <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
         </intent-filter>

         <meta-data android:name="android.appwidget.provider"
                        android:resource="@xml/flashlight_appwidget_info" />
</receiver>

<receiver android:name="FlashlightWidgetReceiver">
        <intent-filter>
               <action android:name="COM_FLASHLIGHT"></action>
        </intent-filter>
 </receiver>


per dubbi chiedete pure