IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Introducció

Hem de realitzar 2 aplicacions:

Lector de codi de barres, utilitzant la llibreria explicada a classe cal realitzar una aplicació que llegeixi i mostri les dades d'un codi de barres. L'aplicació ha de tenir interfície d'usuari

Reproducció de fitxer d'audio

Cal realitzar una aplicació que reprodueixi un fitxer mp3 que es trobi a la mèmoria flash del dipositiu

Codi font

lector reproductor

Lector interficie Aqui esta el codi del xml de l'aplicació lector on posarem un boto i un titol.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:orientation="vertical"
 android:layout_gravity="center">
 <TextView
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="Lector"
  android:gravity="center" android:textSize="25sp"/>
 
 <Button android:text="Scanejar codi BAR" android:id="@+id/scanner"
  android:layout_width="wrap_content" android:layout_height="wrap_content"
  android:gravity="center" android:layout_gravity="center_horizontal">
 </Button>
</LinearLayout>

src Aquí esta la clase que realitza l'acció quant es fa clic al boto i es llegeix el codi de barres.

package com.iesebre.lectorcodibarres;

import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
 
public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        try {
                       
            Button scann = (Button)findViewById(R.id.scanner);
            scann.setOnClickListener(new OnClickListener() {
                
                public void onClick(View v) {
                    Intent intent = new Intent("com.google.zxing.client.android.SCAN");
                    intent.putExtra("SCAN_MODE", "PRODUCT_MODE");
                    startActivityForResult(intent, 0);
                }
 
            });
            
        } catch (ActivityNotFoundException anfe) {
            Log.e("onCreate", "Scanner Not Found", anfe);
        }
        
    }
    
    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
        if (requestCode == 0) {
            if (resultCode == RESULT_OK) {
                String contents = intent.getStringExtra("SCAN_RESULT");
                String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
                // Handle successful scan
                Toast toast = Toast.makeText(this, "Contingut:" + contents + " Format:" + format , Toast.LENGTH_LONG);
                toast.setGravity(Gravity.TOP, 25, 400);
                toast.show();
            } else if (resultCode == RESULT_CANCELED) {
                // Handle cancel
                Toast toast = Toast.makeText(this, "a sigut Cancelat", Toast.LENGTH_LONG);
                toast.setGravity(Gravity.TOP, 25, 400);
                toast.show();
                
            }
        }
    }
 
}

Reproductor src

package com.iesebre.multimedia;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class MainActivity extends Activity {


	MediaPlayer mediaPlayer;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//declarar boto
		Button reproduir = (Button) findViewById(R.id.reproduir);
		Button parar = (Button) findViewById(R.id.parar);
		//quant es fa clic al boto realitza una accio
		reproduir.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				
			// es tria la canço que es vol reproduir
				mediaPlayer = MediaPlayer.create(getBaseContext(), R.raw.kalimba);
				mediaPlayer.start(); // no need to call prepare(); create() does that for you	
			}
		});
		//quant es fa clic al boto realitza una accio
		parar.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				mediaPlayer.stop();
			}
		});
		
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

interficie

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/reproduir"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.67"
        android:text="@string/reproduir" />

    <Button
        android:id="@+id/parar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.45"
        android:text="@string/parar" />

</LinearLayout>

Executable

lector:

LectorCodiBarres

Reproductor

Reproductor

Documentació

lector de codi de barres

si fem clic al boto sobrirà l'aplicació de lectura.
public void onClick(View v) {
                    Intent intent = new Intent("com.google.zxing.client.android.SCAN");
                    intent.putExtra("SCAN_MODE", "PRODUCT_MODE");
                    startActivityForResult(intent, 0);
                }
un cop fet aixo mostrara el resultat baix.
 public void onActivityResult(int requestCode, int resultCode, Intent intent) {
        if (requestCode == 0) {
            if (resultCode == RESULT_OK) {
                String contents = intent.getStringExtra("SCAN_RESULT");
                String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
                // Handle successful scan
                Toast toast = Toast.makeText(this, "Contingut:" + contents + " Format:" + format , Toast.LENGTH_LONG);
                toast.setGravity(Gravity.TOP, 25, 400);
                toast.show();
            } else if (resultCode == RESULT_CANCELED) {
                // Handle cancel
                Toast toast = Toast.makeText(this, "a sigut Cancelat", Toast.LENGTH_LONG);
                toast.setGravity(Gravity.TOP, 25, 400);
                toast.show();
                
            }
        }
    }

Reproductor Reproduir

reproduir.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				
			// es tria la canço que es vol reproduir
				mediaPlayer = MediaPlayer.create(getBaseContext(), R.raw.kalimba);
				mediaPlayer.start(); // no need to call prepare(); create() does that for you	
			}
		});

Parar

reproduir.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				
			// es tria la canço que es vol reproduir
				mediaPlayer = MediaPlayer.create(getBaseContext(), R.raw.kalimba);
				mediaPlayer.start(); // no need to call prepare(); create() does that for you	
			}
		});

Vegeu també

Recursos Android

Enllaços externs

lector reproductor