IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Package dependant du mobile


Sujet :

Android

  1. #1
    Expert confirmé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 360
    Points : 4 416
    Points
    4 416
    Par défaut Package dependant du mobile
    Bonjour,
    J'ai réalisé une application pour LG Optimus 3D qui utilise la Librairie Real3D.
    Je souhaite scinder mon application pour utiliser un HTC Evo 3D qui utilise OpenSense.

    Ma première question est comment détecter le package à installer en fonction du téléphone ?
    Comment scinder une application pour utiliser des plugins ?
    L'activité de mon plugin peut-elle hériter d'une activité de mon programme principal ?

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    À priori : developer.android.com/reference/android/os/Build.html

    Cela répond à une partie de ton souci.

    Pour le reste, ne sachant absolument pas comment son chargée ces bibliothèques tierces, je ne peux pas t'aider.

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 360
    Points : 4 416
    Points
    4 416
    Par défaut
    Ca me donne que des informations sur le téléphone ou Android.

    Je vais essayer avec des plugins mais il faut que je creuse pour comprendre comment ca marche.

    J'ai essayé de transmettre un SurfaceHolder à mon service mais celui-ci n'est pas sérialisable pour le transmettre dans le Bundle.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 360
    Points : 4 416
    Points
    4 416
    Par défaut
    J'ai trouvé des choses mais ça ne marche pas et je n'ai pas d'erreur dans mes information de deboggage.
    Voici le manifest :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.xlim.sic.icones.quality.andreval3d"
        android:versionCode="100"
        android:versionName="1.0" >
     
        <uses-sdk
            android:maxSdkVersion="15"
            android:minSdkVersion="8"
            android:targetSdkVersion="8" />
     
        <uses-feature
            android:name="lge.hardware.real3d.barrier.landscape"
            android:required="false" />
     
        <uses-permission android:name="android.permission.WAKE_LOCK" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     
        <uses-feature
            android:name="com.htc.rosie.widget"
            android:required="false" />
     
        <application
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
            <uses-library
                android:name="com.htc.view"
                android:required="false" />
            <uses-library
                android:name="com.lge.real3d"
                android:required="false" />
     
            <activity><!-- ... --></activity>
        </application>
    </manifest>

    Mon gestionnaire d'affichage :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    import android.content.Context;
    import android.view.Surface;
    import android.view.SurfaceHolder;
     
     
    public class DisplayManager {
    	private static final String TAG="DisplayManager";
    	private Context mContext;
    	private boolean mReal3dLoaded=false;
    	private boolean mOpenSenseLoaded=false;
    	public DisplayManager(Context c) {
    		mContext=c;
    	}
    	public boolean setMode(SurfaceHolder sh, String format) {
    		String type="";
    		String mode="";
    		try { //Real3D lib available
    			Class c_r3d=Class.forName("com.lge.real3d.Real3D");
    			Class c_r3di=Class.forName("com.lge.real3d.Real3DInfo");
    			final String LGE_3D_DISPLAY = "lge.hardware.real3d.barrier.landscape";
    			if(mContext.getPackageManager().hasSystemFeature(LGE_3D_DISPLAY)) {
    				android.util.Log.i(TAG, "Using Real3D to set display");
    				Object r3d=c_r3d.getConstructor(new Class[] {Class.forName("android.view.SurfaceHolder")}).newInstance(sh);
    				//normal
    				type="REAL3D_TYPE_NONE";
    				mode="REAL3D_TYPE_NONE";
    				if (format.equals("LR")) {
    					type="REAL3D_TYPE_SS";
    					mode="REAL3D_ORDER_LR";
    				}
    				else if (format.equals("TB")) {
    					type="REAL3D_TYPE_TB";
    					mode="REAL3D_ORDER_LR";
    				}
    				else if (format.equals("stereo")) {
    					type="REAL3D_TYPE_PIXEL_INTERLACED";
    					mode="REAL3D_ORDER_LR";
    				}
    				else if (format.equals("interlaced")) {
    					type="REAL3D_TYPE_ROW_INTERLACED";
    					mode="REAL3D_ORDER_LR";
    				}
    				Object r3di=c_r3di.getConstructor(new Class[] {boolean.class, int.class, int.class}).newInstance(true, c_r3d.getField(type).getInt(int.class), c_r3d.getField(mode).getInt(int.class));
    				r3d.getClass().getMethod("setReal3DInfo", new Class[] {c_r3di}).invoke(null, r3di);
    				mReal3dLoaded=true;
    				return mReal3dLoaded;
    			}
    		} catch (Exception e) {
    			android.util.Log.w(TAG, "Real3D library not available");
    		}
    		try {
    			Class c_ds=Class.forName("com.htc.view.DisplaySetting");
    			android.util.Log.i(TAG, "Using OpenSense to set display - "+format);
    			if (format.equals("LR"))
    				mode="STEREOSCOPIC_3D_FORMAT_SIDE_BY_SIDE";
    			else if (format.equals("TB"))
    				mode="STEREOSCOPIC_3D_FORMAT_TOP_BOTTOM";
    			else if (format.equals("interlaced"))
    				mode="STEREOSCOPIC_3D_FORMAT_INTERLEAVED";
    			c_ds.getMethod("setStereoscopic3DFormat", new Class[] {Surface.class, int.class}).invoke(mOpenSenseLoaded, new Object[] {sh.getSurface(), c_ds.getField(mode).getInt(int.class)});
    			android.util.Log.i(TAG, "OpenSense display mode: "+mode);
    			mOpenSenseLoaded=true;
    			return mOpenSenseLoaded;
    		} catch (Exception e) {
    			android.util.Log.w(TAG, "OpenSense 3D library not available");
    			mOpenSenseLoaded=false;
    			e.printStackTrace();
    		}
    		return mReal3dLoaded | mOpenSenseLoaded;
    	}
    }

    Et le code dans mon activité :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public class VideoEvaluationActivity extends Activity implements
    		OnCompletionListener, OnPreparedListener,
    		OnVideoSizeChangedListener, SurfaceHolder.Callback, OnClickListener {
    	private static final String TAG = "VideoEvaluationActivity";
    	private Context mContext;
    	private SurfaceView mPreview;
    	private SurfaceHolder mHolder;
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.evaluation);
    		mContext = getApplicationContext();
    		mHolder = mPreview.getHolder();
    		displayManager = new DisplayManager(mContext);
    		mHolder.addCallback(this);
    		mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    	}

    Avez vous idée de pourquoi mon affichage ne passe pas en 3D ?

Discussions similaires

  1. [AC-2013] Requete pour calculer une Moyenne mobile exponentielle (qui depend du recordset precedent.)
    Par lukebalthazar dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 28/06/2014, 01h31
  2. dependency entre package
    Par foxrol dans le forum Maven
    Réponses: 3
    Dernier message: 05/08/2009, 14h21
  3. Maven: dependence d'un package pour compiler
    Par soufianetomase dans le forum Maven
    Réponses: 6
    Dernier message: 30/09/2008, 15h47
  4. dependance de package rpm sous red hat
    Par Carhod dans le forum RedHat / CentOS / Fedora
    Réponses: 9
    Dernier message: 29/10/2007, 14h35
  5. Packages - problème de dependances
    Par Invité dans le forum Administration système
    Réponses: 3
    Dernier message: 14/06/2004, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo