Monday, July 29, 2013

Changing the install location of Android Application

Hi all, Today we are going to learn how to change/modify the install location of Android Application without rooting your Android-device

Some of the Android Devices has no enough space(internal memory) to install the application from google play, so here we have tricky solution for that

Steps to Follow :
1.Download Android SDK 
2.Open Command prompt in ur windows(win+r,type cmd)
3.Type th path of platform-tools where SDK is installed (eg, C:\Users\Anu\android-sdks\platform-tools)
4.Enable the USB Debbuging (Goto Settings-Developer options-USB debugging) in your Device before connecting to the system

5.Now in windows type adb devices, you will get list of devices attached to your system


6.After getting list of devices, type adb shell and you will get $ symbol(Non Rooted or # symbol(Rooted) which is ready to execute your command

7.Type set pm setInstallLocation 2 or pm-set-Install-Location 2 

8.Exit & unplug your device and Enjoy by installing your apps to your external memory.






Wednesday, January 23, 2013

Identifying Outgoing call Phone Number Through our Application

How To Identify Outgoing call Phone Number Through our Application 



1. Use BroadcastReceiver.
2. Add Permission to Your Manifest File.


1.Add the following code 

public class OutgoingCallReceiver extends BroadcastReceiver {


   @Override
   public void onReceive(Context context, Intent intent) {
           Bundle bundle = intent.getExtras();

           if(null == bundle)
                   return;


           String phonenumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);

           Log.i("GetPhoneNumber",phonenumber);
          
           String outgoingNumber =  phonenumber;

           Toast.makeText(context, outgoingNumber , Toast.LENGTH_LONG).show();
   }
}

2.In your Manifest

<receiver android:name=".OutgoingCallReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
            </intent-filter>
        </receiver>

Friday, November 16, 2012

How to download the images and to create folder to save it

 
Hi all, here we are going to learn how to view an image in ImageView that are in the form of URL and to download that image in our own created folder.
 
Here we are creating a folder to save an image in SDcard.
 
 
private class DownloadTask extends AsyncTask<String, Void, Void> {


private final ProgressDialog dialog = new ProgressDialog(ImageDownloaderActivity.this);


// can use UI thread here

protected void onPreExecute() {

this.dialog.setMessage("Loading...");

this.dialog.show();

}



// automatically done on worker thread (separate from UI thread)

protected Void doInBackground(final String... a) {


try {

Thread.sleep(100);

String url1 = imageUrls[position];

URL ulrn = new URL(url1);


HttpURLConnection con = (HttpURLConnection) ulrn

.openConnection();

InputStream is = con.getInputStream();

bmp = BitmapFactory.decodeStream(is);



int widthPx = getWindowManager().getDefaultDisplay().getWidth();

int heightPx = getWindowManager().getDefaultDisplay().getHeight();

bmp = Bitmap.createScaledBitmap(bmp, widthPx, heightPx, true);



} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

 
catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return null;

}


// can use UI thread here

protected void onPostExecute(final Void unused) {


if (null != bmp) {

imageView.setImageBitmap(bmp);

}

 
else

System.out.println("The Bitmap is NULL");


File dir = new File(Environment.getExternalStorageDirectory() + "/Example/Wallpapers/");  //path of your own folder

File[] files = dir.listFiles();

if (files == null)

{

int numberOfImages = 0;

BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();

Bitmap bitmap = drawable.getBitmap();

File sdCardDirectory = Environment.getExternalStorageDirectory();

new File(sdCardDirectory + "/Example/Wallpapers/").mkdirs();  //creating a folder

File image = new File(sdCardDirectory + "/Example/Wallpapers/Sample" + numberOfImages + ".JPG");          // naming your image as sample1,2,3,,..and saving it in created folder

boolean success = false;


FileOutputStream outStream;

try {

outStream = new FileOutputStream(image);

bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outStream);

outStream.flush();

outStream.close();

success = true;

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {


e.printStackTrace();

}

if (success) {

Toast.makeText(getApplicationContext(),"Image saved successfully in Sdcard/Example/Wallpapers",Toast.LENGTH_LONG).show();

} else {

Toast.makeText( getApplicationContext(), "Error during image saving", Toast.LENGTH_LONG) .show();

}

}

}

Friday, November 9, 2012

How to store and retrieve the datas from existing SQLiteDB in Android

Hi everyone, here we are going to learn how to insert and fetch the data's from existing DB.

Place your existing DB in mnt/sdcard/YourFolder /Your.db
Here my DB name is XXX.db and the folder I have used is DBFolder.
This class is for DB.

public class SqliteAdapter extends Activity {

 private static final String TAG = "DatabaseHelper";
 public static final String DATABASE_FILE_PATH = "/sdcard/DBFolder";
 public static final String DATABASE_NAME = "XXX.db";
 private Context context;
 private SQLiteHelper sqLiteHelper;
 private static SQLiteDatabase database;
 static String myPath = DATABASE_FILE_PATH + File.separator + DATABASE_NAME;

 public SqliteAdapter(Context pcontext) {

  try {
   database = SQLiteDatabase.openDatabase(myPath, null,
     SQLiteDatabase.OPEN_READWRITE);
   context = pcontext;
  }
  catch (SQLiteException ex) {
   Log.e(TAG, "error -- " + ex.getMessage(), ex);
  } finally {
  }

 }

 public SqliteAdapter openToRead() throws android.database.SQLException {

  Log.i(TAG, "Open DB");
  sqLiteHelper = new SQLiteHelper(context, DATABASE_NAME, null, 1);
  database = SQLiteDatabase.openDatabase(myPath, null,
    SQLiteDatabase.OPEN_READWRITE);
  return this;

 }

 public SqliteAdapter openToWrite() throws android.database.SQLException {

  Log.i(TAG, "Open DB");
  sqLiteHelper = new SQLiteHelper(context, DATABASE_NAME, null, 1);
  database = SQLiteDatabase.openDatabase(myPath, null,
    SQLiteDatabase.OPEN_READWRITE);
  return this;

 }

 public void close() {

  sqLiteHelper.close();

 }


 public Cursor executeSQLQuery(String sql, String[] selectionArgs) {

  Log.i(TAG, "Open DB");
  sqLiteHelper = new SQLiteHelper(context, DATABASE_NAME, null, 1);
  database = SQLiteDatabase.openDatabase(myPath, null,
    SQLiteDatabase.OPEN_READWRITE);
  Cursor cursor = database.rawQuery(sql, selectionArgs);
  Log.i("DataBaseHelper", "executeSQLQuery cursor " + cursor.getCount());
  database.close();
  return cursor;

 }

 public class SQLiteHelper extends SQLiteOpenHelper {

  public SQLiteHelper(Context context, String name,
    CursorFactory factory, int version) {
   super(context, name, factory, version);

  }

  @Override
  public void onCreate(SQLiteDatabase db) {

   // TODO Auto-generated method stub
   db.execSQL(DATABASE_NAME);

  }

  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
   // TODO Auto-generated method stub
  }
 }
}

Access the DB class through your main class/Activity

public static final String DATABASE_FILE_PATH = "/sdcard/DBFolder";

public static final String DATABASE_NAME = "XXX.db";

static String myPath = DATABASE_FILE_PATH + File.separator + DATABASE_NAME;

SqliteAdapter mySQLiteAdapter;   //object of DB class

SQLiteHelper sqLiteHelper;



For Inserting the data's in Existing DB:

 
SQLiteDatabase db = SQLiteDatabase.openDatabase(myPath,null, SQLiteDatabase.OPEN_READWRITE); 
String sqlQuery = "insert into tableA (bundle,subject) values (a,b)";

db.execSQL(sqlQuery ); 



To Select/Retrieve data's from DB:

mySQLiteAdapter = new SqliteAdapter(this);

mySQLiteAdapter.openToRead();

mySQLiteAdapter.openToWrite();


Cursor cursor = mySQLiteAdapter.executeSQLQuery(
"select COUNT(*) as Value from tableA where TRIM(UPPER(bundle)) =TRIM(UPPER('"
+ value.trim() + "'))", null);



To Update the Data's:

SQLiteDatabase db=SQLiteDatabase .openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);

String updateSql="UPDATE table_B SET logged_in_status=0";

db.execSQL(updateSql);