2016-07-12 12 views
0

In Android 2.3, 4, 4.1, 4.2, 4.3, 4.4 korrekt funktioniertWarum funktioniert die Kamera in Android 5 nicht?

Ich habe diese Funktion mit Android 2.3 api:

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { 
    // 1º Si se esta viendo preview, se detiene 
    if (mPreviewRunning) { 
     mCamera.stopPreview(); 
    } 
    // 2º Se setean los nuevos parametros de la camara 
    Camera.Parameters p = mCamera.getParameters(); 
    p.setPreviewSize(w, h); 
    mCamera.setParameters(p); 

    // 3º Volvemos a mostrar el preview 
    try { 
     mCamera.setPreviewDisplay(holder); 
    } catch (IOException e) { 
     e.printStackTrace(); 
     Toast.makeText(ctxt, "Error refreshing camera", Toast.LENGTH_LONG) 
      .show(); 
    } 

    mCamera.startPreview(); 
    mPreviewRunning = true; 
} 

Die App Absturz in der Linie, zurückkehren

Fehler : W/System.err: java.lang.RuntimeException: fail zur Kamera Service

mCamera.setParameters(p); 

nach der Rückkehr diese verbinden:

W/System.err: java.io.IOException: failed öffnen: ENOENT (Keine solche Datei oder das Verzeichnis)

Das ist mein Manifest für meine beiden apps:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.foca.deboSancion" 
    android:versionCode="4" 
    android:versionName="14.7" > 

    <uses-sdk android:minSdkVersion="8" /> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.CAMERA" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 
    <uses-permission android:name="android.permission.BLUETOOTH" /> 
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.foca.deboComun" 
    android:versionCode="1" 
    android:versionName="1.0" > 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.CAMERA" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 
    <uses-feature android:name="android.hardware.camera" /> 
    <uses-sdk android:minSdkVersion="8" /> 

Antwort

1

Well mCamera.setParameters(p); ist nicht lollypop (android 5.0) api-problem, seine gerätespezifisch. Das Verhalten der meisten Geräte mit den Kameraparametern ist endgültig. Ich meine, du kannst es nicht ändern, wenn du versuchst, dass es abstürzt. Einfacher Lösungsgebrauch des Versuches Fang, fortgeschritten ist Gebrauch Reflexion (Vorschlag: gehen Sie nicht dafür)

Verwandte Themen