Образцы кода основных функций Android устройств.

Очень часто, что бы написать простую функцию уходит уйма времени. Я бы хотел показать интересные образцы кода, которые помогут начинающим. Возможно, кому то они помогут создать свое первое простое приложение, а для особо интересующихся www.androidsnippets.org в помощь.

УСТРОЙСТВО
Как включить вибрацию?
(Vibrator) getSystemService(Context.VIBRATOR_SERVICE).vibrate(milliseconds);

Как включить вибрацию определенное кол-во раз?
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

// 1. Vibrate for 1000 milliseconds
long milliseconds = 1000;
v.vibrate(milliseconds);

// 2. Vibrate in a Pattern with 500ms on, 500ms off for 5 times
long[] pattern = { 500, 300 };
v.vibrate(pattern, 5);

Как включить и выключить бесшумный режим?
mAudio = (AudioManager) getSystemService(Activity.AUDIO_SERVICE);
mAudio.setRingerMode(AudioManager.RINGER_MODE_SILENT);
// or...
mAudio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);

Как убедиться, что карта памяти присутствует?
if (android.os.Environment.getExternalStorageState().equals( 
android.os.Environment.MEDIA_MOUNTED)) 

Как заблокировать экран в приложении?
KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Activity.KEYGUARD_SERVICE); 
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); 
lock.disableKeyguard(); 

GPS
Как рассчитать расстояние между двумя GPS координатами?
private double gps2m(float lat_a, float lng_a, float lat_b, float lng_b) {
  float pk = (float) (180/3.14169);

  float a1 = lat_a / pk;
  float a2 = lng_a / pk;
  float b1 = lat_b / pk;
  float b2 = lng_b / pk;

  float t1 = FloatMath.cos(a1)*FloatMath.cos(a2)*
     FloatMath.cos(b1)*FloatMath.cos(b2);
  float t2 = FloatMath.cos(a1)*FloatMath.sin(a2)*
     FloatMath.cos(b1)*FloatMath.sin(b2);
  float t3 = FloatMath.sin(a1)*FloatMath.sin(b1);
  double tt = Math.acos(t1 + t2 + t3);
 
  return 6366000*tt;
}

Как получить последнее известное GPS местоположение?
private double[] getGPS() {
 LocationManager lm = (LocationManager) getSystemService(
  Context.LOCATION_SERVICE);
 List<String> providers = lm.getProviders(true);

 Location l = null;
 
 for (int i=providers.size()-1; i>=0; i--) {
  l = lm.getLastKnownLocation(providers.get(i));
  if (l != null) break;
 }
 
 double[] gps = new double[2];
 if (l != null) {
  gps[0] = l.getLatitude();
  gps[1] = l.getLongitude();
 }

 return gps;
}

Как получить информацию о Вашем приложении?
PackageManager manager = this.getPackageManager();
try {
   PackageInfo info = manager.getPackageInfo(this.getPackageName(), 0);
   String packageName = info.packageName;
   int versionCode = info.versionCode;
   String versionName = info.versionName;
   } catch (NameNotFoundException e) {
   // TODO Auto-generated catch block
   }

Как запустить приложение при загрузке устройства?
<receiver android:enabled="true" android:name=".BootUpReceiver"
	android:permission="android.permission.RECEIVE_BOOT_COMPLETED">

	<intent-filter>
		<action android:name="android.intent.action.BOOT_COMPLETED" />
		<category android:name="android.intent.category.DEFAULT" />
	</intent-filter>
</receiver>
[..]
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
[..]

public class BootUpReceiver extends BroadcastReceiver{

	@Override
	public void onReceive(Context context, Intent intent) {
		Intent i = new Intent(context, MyActivity.class);  
		i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		context.startActivity(i);  
	}

}

Как выйти из android приложения?
Не используйте
System.exit(0);
лучше
finish()
Если Вам нужно закрыть сразу несколько действий, используйте команду startActivityForResult() и верните назад «close now» flag.
Как установить APK из интернета?
Uri installUri = Uri.fromParts("package", "xxx", null); 
Intent intent = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);
startActivity(intent);

Как скопировать текст в клипборд?
ClipboardManager clipboard = 
      (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 

 clipboard.setText("Text to copy");

МУЛЬТИМЕДИЯ
Как загрузить изображение из сети?
public Bitmap getRemoteImage(final URL aURL) {
    try {
        final URLConnection conn = aURL.openConnection();
        conn.connect();
        final BufferedInputStream bis = new BufferedInputStream(
		conn.getInputStream());
        final Bitmap bm = BitmapFactory.decodeStream(bis);
        bis.close();
        return bm;
    } catch (IOException e) {
        Log.d("DEBUGTAG", "Oh noooz an error...");
    }
    return null;
}

Как установить рингтон?
String filepath ="/sdcard/play2.mp3";
File ringtoneFile = new File(filepath);

ContentValues content = new ContentValues();
content.put(MediaStore.MediaColumns.DATA,ringtoneFile.getAbsolutePath());
content.put(MediaStore.MediaColumns.TITLE, "chinnu");
content.put(MediaStore.MediaColumns.SIZE, 215454);
content.put(MediaStore.MediaColumns.MIME_TYPE, "audio/*");
content.put(MediaStore.Audio.Media.ARTIST, "Madonna");
content.put(MediaStore.Audio.Media.DURATION, 230);
content.put(MediaStore.Audio.Media.IS_RINGTONE, true);
content.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
content.put(MediaStore.Audio.Media.IS_ALARM, false);
content.put(MediaStore.Audio.Media.IS_MUSIC, false);
 

//Insert it into the database
Log.i(TAG, "the absolute path of the file is :"+
ringtoneFile.getAbsolutePath());
Uri uri = MediaStore.Audio.Media.getContentUriForPath(
ringtoneFile.getAbsolutePath());
Uri newUri = context.getContentResolver().insert(uri, content);
ringtoneUri = newUri; 
Log.i(TAG,"the ringtone uri is :"+ringtoneUri);
RingtoneManager.setActualDefaultRingtoneUri(context,
RingtoneManager.TYPE_RINGTONE,newUri);

Как запустить MP3 в приложении?
private void playSound(int dResource) { 
 try{ 
  if ( m_objMediaPlayer != null ) { 
   m_objMediaPlayer.stop(); 
   m_objMediaPlayer = null; 
  } 
  m_objMediaPlayer = MediaPlayer.create(this, dResource); 
  m_objMediaPlayer.setLooping(false); 
  m_objMediaPlayer.start(); 
 } catch( Exception ex ) { 
  Log.e( "Oops in playsound", "", ex ); 
 } 
} 

WI-FI
Как просканировать беспроводные сети?
}ckage com.android.wifitester;

import java.util.List;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;

public class WifiTester extends Activity {
  TextView mainText;
  WifiManager mainWifi;
  WifiReceiver receiverWifi;
  List<ScanResult> wifiList;
  StringBuilder sb = new StringBuilder();
  
  public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main);
   mainText = (TextView) findViewById(R.id.mainText);
   mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
   receiverWifi = new WifiReceiver();
   registerReceiver(receiverWifi, new IntentFilter(
      WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
   mainWifi.startScan();
   mainText.setText("\nStarting Scan...\n");
  }

  public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(0, 0, 0, "Refresh");
    return super.onCreateOptionsMenu(menu);
  }

  public boolean onMenuItemSelected(int featureId, MenuItem item) {
    mainWifi.startScan();
    mainText.setText("Starting Scan");
    return super.onMenuItemSelected(featureId, item);
  }

  protected void onPause() {
    unregisterReceiver(receiverWifi);
    super.onPause();
  }

  protected void onResume() {
    registerReceiver(receiverWifi, new IntentFilter(
       WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
    super.onResume();
  }
  
  class WifiReceiver extends BroadcastReceiver {
    public void onReceive(Context c, Intent intent) {
    sb = new StringBuilder();
    wifiList = mainWifi.getScanResults();
    for(int i = 0; i < wifiList.size(); i++){
      sb.append(new Integer(i+1).toString() + ".");
      sb.append((wifiList.get(i)).toString());
      sb.append("\n");
    }
    mainText.setText(sb);
    }
  }
}

Как включить и выключить wi-fi?
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifi.setWifiEnabled(enabled);

SMS
Как отправить sms из приложения?
SmsManager m = SmsManager.getDefault();
String destination = "xxxxxxxxxxx";
String text = "Hello, androidev!";
m.sendTextMessage(destination, null, text, null, null);
  • +6
  • 16 апреля 2010, 02:38
  • dzinet

Комментарии (3)

RSS свернуть / развернуть
+
0
dzinet, спасибо за интересный топик. Для начинающих разработчиков Android это будет полезным стартом
avatar

Interfer0n

  • 16 апреля 2010, 10:56
+
0
Тоже перенес на главную
avatar

Interfer0n

  • 16 апреля 2010, 10:57
+
+1
Спасибо, это мега полезно.
avatar

slowrus

  • 19 апреля 2010, 04:17

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.