Search
Sponsors
Sponsors

Archive for the ‘Android’ Category

Save image to media library

Thursday, August 25th, 2011

 

Uri saveMediaEntry(String imagePath,String title,String description,long dateTaken,int orientation,Location loc) {
    ContentValues v = new ContentValues();
    v.put(Images.Media.TITLE, title);
    v.put(Images.Media.DISPLAY_NAME, displayName);
    v.put(Images.Media.DESCRIPTION, description);
    v.put(Images.Media.DATE_ADDED, dateTaken);
    v.put(Images.Media.DATE_TAKEN, dateTaken);
    v.put(Images.Media.DATE_MODIFIED, dateTaken) ;
    v.put(Images.Media.MIME_TYPE, "image/jpeg");
    v.put(Images.Media.ORIENTATION, orientation);

    File f = new File(imagePath) ;
    File parent = f.getParentFile() ;
    String path = parent.toString().toLowerCase() ;
    String name = parent.getName().toLowerCase() ;
    v.put(Images.ImageColumns.BUCKET_ID, path.hashCode());
    v.put(Images.ImageColumns.BUCKET_DISPLAY_NAME, name);
    v.put(Images.Media.SIZE,f.length()) ;
    f = null ;
   
    if( targ_loc != null ) {
        v.put(Images.Media.LATITUDE, loc.getLatitude());
        v.put(Images.Media.LONGITUDE, loc.getLongitude());
    }
    v.put("_data",imagePath) ;
    ContentResolver c = getContentResolver() ;
    return c.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, v);
}

Handling shake events

Thursday, August 25th, 2011

 

package com.gedankentank.android.sensor;

import java.util.List;

import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.util.Log;

public class AccelerometerListener implements SensorEventListener {
   
    private SensorManager sensorManager;
    private List<Sensor> sensors;
    private Sensor sensor;
    private long lastUpdate = -1;
    private long currentTime = -1;
   
    private float last_x, last_y, last_z;
    private float current_x, current_y, current_z, currenForce;
    private static final int FORCE_THRESHOLD = 900;
    private final int DATA_X = SensorManager.DATA_X;
    private final int DATA_Y = SensorManager.DATA_Y;
    private final int DATA_Z = SensorManager.DATA_Z;
   
    public AccelerometerListener(Activity parent) {
        SensorManager sensorService = (SensorManager) parent.getSystemService(Context.SENSOR_SERVICE);
        this.sensorManager = sensorManager;
        this.subscriber = subscriber;
        this.sensors = sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER);
        if (sensors.size() > 0) {
            sensor = sensors.get(0);
        }
    }
    public void start () {
        if (sensor!=null)  {
            sensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_GAME);
        }
    }
   
    public void stop () {
        sensorManager.unregisterListener(this);
    }
   
    public void onAccuracyChanged(Sensor s, int valu) {
       
       
    }
    public void onSensorChanged(SensorEvent event) {
       
        if (event.sensor.getType() != Sensor.TYPE_ACCELEROMETER || event.values.length < 3)
              return;
       
        currentTime = System.currentTimeMillis();
       
        if ((currentTime - lastUpdate) > 100) {
            long diffTime = (currentTime - lastUpdate);
            lastUpdate = currentTime;
           
            current_x = event.values[DATA_X];
            current_y = event.values[DATA_Y];
            current_z = event.values[DATA_Z];
           
            currenForce = Math.abs(current_x+current_y+current_z - last_x - last_y - last_z) / diffTime * 10000;
           
            if (currenForce > FORCE_THRESHOLD) {
           
                // Device has been shaken now go on and do something
                // you could now inform the parent activity …
               
            }
            last_x = current_x;
            last_y = current_y;
            last_z = current_z;

        }
    }

}

Send email using Intent

Thursday, August 25th, 2011

 

Intent i = new Intent(Intent.ACTION_SEND); 
//i.setType("text/plain"); //use this line for testing in the emulator 
i.setType("message/rfc822") ; // use from live device
i.putExtra(Intent.EXTRA_EMAIL, new String[]{"test@gmail.com"}); 
i.putExtra(Intent.EXTRA_SUBJECT,"subject goes here"); 
i.putExtra(Intent.EXTRA_TEXT,"body goes here"); 
startActivity(Intent.createChooser(i, "Select email application."));

Start a phone call

Thursday, August 25th, 2011

 

try {
   Intent intent = new Intent(Intent.ACTION_CALL);
   intent.setData(Uri.parse("tel:+123456"));
   startActivity(intent);
} catch (Exception e) {
   Log.e("SampleApp", "Failed to invoke call", e);
}

Identify an android device

Thursday, August 25th, 2011

 

import android.provider.Settings.Secure;
  
private String android_id = Secure.getString(getContext().getContentResolver(), Secure.ANDROID_ID);

Fullscreen Activity

Thursday, August 25th, 2011

 

@Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
 
        requestWindowFeature(Window.FEATURE_NO_TITLE); 
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,  
                                WindowManager.LayoutParams.FLAG_FULLSCREEN); 
 
        setContentView(R.layout.main); 
    }

Hide the title bar

Thursday, August 25th, 2011

 

//Hide the title bar
requestWindowFeature(Window.FEATURE_NO_TITLE);

Display notification in info bar

Thursday, August 25th, 2011

 

NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification noty = new Notification(R.drawable.icon, "Button 1 clicked", System.currentTimeMillis());
noty.setLatestEventInfo(context, "Notice", msg, contentIntent);
notificationManager.notify(1, noty);

Get IP address

Thursday, August 25th, 2011

 

public String getLocalIpAddress() {
    try {
        for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
            NetworkInterface intf = en.nextElement();
            for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
                InetAddress inetAddress = enumIpAddr.nextElement();
                if (!inetAddress.isLoopbackAddress()) {
                    return inetAddress.getHostAddress().toString();
                }
            }
        }
    } catch (SocketException ex) {
        Log.e(LOG_TAG, ex.toString());
    }
    return null;
}

Insert a contact

Thursday, August 25th, 2011

 

private Uri insertContact(Context context, String name, String phone) {
      
       ContentValues values = new ContentValues();
       values.put(People.NAME, name);
       Uri uri = getContentResolver().insert(People.CONTENT_URI, values);
       Uri numberUri = Uri.withAppendedPath(uri, People.Phones.CONTENT_DIRECTORY);
       values.clear();
      
       values.put(Contacts.Phones.TYPE, People.Phones.TYPE_MOBILE);
       values.put(People.NUMBER, phone);
       getContentResolver().insert(numberUri, values);
      
       return uri;
   }

Translate