Kode Penting untuk Android Developer

Sebenarnya penggalan kode ini adalah kode yang sering saya pakai pada aplikasi-aplikasi yang saya tulis ulang atau reskin, mungkin untuk orang lain kepentingannya akan berbeda. Selain teknik kode-kode berikut ada pula teknik yang berbeda, tentunya dengan hasil sesuai dengan kebutuhan. Berikut kode penting untuk Android Developer:

# Kode untuk memeriksa koneksi internet, ini biasanya digunakan untuk aplikasi yang mengakses internet, misalnya mengakses server, Google Play Service login, Admob atau akses lainnya. Hal ini dimaksudkan kode tidak dieksekusi jika tidak ada koneksi internet yang kadang membuat aplikasi ngelag. Berikut kode yang sering saya gunakan untuk memeriksa koneksi internet.
private boolean isNetworkAvailable() {  
 return ((ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE)).
  getActiveNetworkInfo() != null;
}

# Kode untuk mendapatkan Device ID smartphone, kalau kode Device ID ini saya gunakan bersamaan untuk test Admob. Berikut kodenya:
private String getDeviceId() {
 String device_id_string = Settings.Secure.getString(
   this.getContentResolver(), Settings.Secure.ANDROID_ID);
 String deviceId = md5(device_id_string).toUpperCase(Locale.ENGLISH);

 return deviceId;
}

private String md5(final String s) {
 try {
  // Create MD5 Hash
  MessageDigest digest = java.security.MessageDigest.getInstance("MD5");

  digest.update(s.getBytes());
  byte messageDigest[] = digest.digest();

  // Create Hex String
  StringBuffer hexString = new StringBuffer();
  for (int i = 0; i < messageDigest.length; i++) {
   String h = Integer.toHexString(0xFF & messageDigest[i]);
    
   while (h.length() < 2) {
    h = "0" + h;
   }
    
   hexString.append(h);
  }
  return hexString.toString();

 } catch (NoSuchAlgorithmException e) {
  Log.w("----md5-----", "failed to get android DEVICE ID from Java");
 }
 
 return "";
}

# Kode untuk mendapatkan SHA Keyhash aplikasi, ini biasa digunakan untuk identifikasi aplikasi dengan Facebook API. Berikut kodenya:
public static String printHashKey() {
 String pkgName = context.getPackageName();
 String keyHash = null;
  
 try {
  PackageInfo info = getPackageManager().getPackageInfo(pkgName, 
    PackageManager.GET_SIGNATURES);
   
  for (Signature signature : info.signatures) {
   MessageDigest md = MessageDigest.getInstance("SHA");
   md.update(signature.toByteArray());
   keyHash = Base64.encodeToString(md.digest(), Base64.DEFAULT);
  }
 } catch (NameNotFoundException e) {
  //Log.d(TAG, "error: " + e.getStackTrace());
 } catch (NoSuchAlgorithmException e) {
  //Log.d(TAG, "error: " + e.getStackTrace());
 }

 return keyHash;
}

# Kode untuk mendapatkan SHA1 Certificate, biasanya digunakan untuk identifikasi aplikasi saat verifikasi dengan server, misalnya Google Play Service. Selain menggunakan kode, SHA1 Certificate ini bisa dilihat pada saat export application package (APK). Berikut kodenya:
public static void printCertificate() {
 String certificate = null;
 PackageManager pm = getPackageManager();
 String packageName = getPackageName();
 int flags = PackageManager.GET_SIGNATURES;
 PackageInfo packageInfo = null;
  
 try {
  packageInfo = pm.getPackageInfo(packageName, flags);
 } catch (NameNotFoundException e) {
  e.printStackTrace();
 }
  
 Signature[] signatures = packageInfo.signatures;
 byte[] cert = signatures[0].toByteArray();
 InputStream input = new ByteArrayInputStream(cert);
 CertificateFactory cf = null;
 
 try {
  cf = CertificateFactory.getInstance("X509");
 } catch (CertificateException e1) {
  e1.printStackTrace();
 }
  
 X509Certificate c = null;
 
 try {
  c = (X509Certificate) cf.generateCertificate(input);
 } catch (CertificateException e2) {
  e2.printStackTrace();
 }
  
 try {
  MessageDigest md = MessageDigest.getInstance("SHA1");
  byte[] publicKey = md.digest(c.getPublicKey().getEncoded());
  StringBuffer hexString = new StringBuffer();
  
  for (int i = 0; i < publicKey.length; i++) {
   String appendString = Integer.toHexString(0xFF & publicKey[i]);
   
   if (appendString.length() == 1) {
    hexString.append("0");
   }
   
   hexString.append(appendString);
  }
   
  certificate = hexString.toString();
 } catch (NoSuchAlgorithmException e3) {
  e3.printStackTrace();
 }
}

# Kode untuk memeriksa ketersediaan External Storage, untuk membaca maupun menulis ke External storage pada smartphone Android. Berikut kodenya:
public boolean isStorageAvailable() {
 String state = Environment.getExternalStorageState();

 if (Environment.MEDIA_MOUNTED.equals(state)) {
  return true;
 } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
  //message sd_card_read_only
 } else {
  //message sd_card_not_available
 }

 return false;
}

# Kode fullscreen aplikasi, sesuai kebutuhan aplikasi.
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
    WindowManager.LayoutParams.FLAG_FULLSCREEN);

# Keep screen on, membuat layar smartphone tetap menyala. Untuk Keep screen on ini ada 3 cara, berikut ini cara yang paling sederhana.
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
    WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

 
Kode-kode ini saya dapatkan dari berbagai sumber. Semoga bisa bermanfaat untuk sesama pemula. Kalau ada kode-kode penting lainnya boleh ditambahkan.

No comments:

Post a Comment