My Blog List

Wednesday, 22 August 2012

How to get Installed packages List in Android

Hi, folks
This quick post is related to grab the app information installed on to your device.

Here is sample method  on button clicked..


 public void getInstalledPackage(View view)
{
Log.d("Clicked", " button Clicked");
             PackageManager pm = getPackageManager();
//get a list of installed apps.
        List<ApplicationInfo> packages = pm
                .getInstalledApplications(PackageManager.GET_META_DATA);
                // iterate over the list.
        for (ApplicationInfo packageInfo : packages) {
                           // print package name.
            Log.d("package name" , packageInfo.packageName);

        }
      }
that's all  
open your log cat and you can see the result
pretty cool  is'nt?


for any query just mail me @ bpsingh216@gmail.com

Friday, 20 July 2012

iPhone Basic UI Controls Demo

Hello fellas,

Here this post comes with some basic iphone UI controls demo. It will illustrate how to deal with
                         UILable
                         UITextField
                         UITextView
                         UIImageView
                         UIButton
                         UISteper
                         UISlider
                         UISwitch
so let's start
1. Open Xcode create new project
  Xcode ->>File->>New->>New Project
create new View Controller name it as BasicControlsVC
Xcode will automatically create
.AppDelegate.h
.AppDelegate.m
.BasicControlsVC.h
BasiccontrolsVC.m

2.Open BasicControls.h and declare your controls (see below)


#import <UIKit/UIKit.h>

@interface BasicControlsVC : UIViewController<UITextFieldDelegate,UITextViewDelegate>
{
    
    
    UIButton *button;
    UILabel *lable;
    UITextView *textview;
    UITextField *textfield;
    UISlider *slider;
    UISwitch *switchControls;
    UIStepper *stepper;
    UIImageView *imageview;
    
}

@end


3.Now Time to create these controls and performing action.
Generally creating controls refers to allocating memory and setting it's property ,so let's do that
open BasicControlsVC.m and modify your init method  as shown below

- (id)init
{
    self = [super init];
    if (self) {
        //allocate controls here..
        
        //create lable
        lable=[[UILabel alloc]init];
        [lable setFrame:CGRectMake(50, 50, 100, 30)];
        lable.text=@"This is label";
        lable.textColor=[UIColor grayColor];
        
        //create Image view
        imageview=[[UIImageView alloc]initWithFrame:CGRectMake(170, 50, 100, 80)];
        imageview.image=[UIImage imageNamed:@"lamborghini.png"];
        
        
        //create  Textfield
        textfield=[[UITextField alloc]initWithFrame:CGRectMake(50, 100, 200, 50)];
        [textfield setPlaceholder:@"this is text field"];
        textfield.delegate=self;
        
        
        //create Textview
        textview=[[UITextView alloc]initWithFrame:CGRectMake(50, 160, 200, 50)];
        [textview setText:@"This is text view"];
        textview.delegate=self;
        
        //create button
        button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        [button addTarget:self 
                   action:@selector(aMethod)
         forControlEvents:UIControlEventTouchUpInside];
        [button setTitle:@"Button" forState:UIControlStateNormal];
        [button setTintColor:[UIColor grayColor]];
        [button setTag:1];
        button.frame = CGRectMake(50, 220, 70, 30);
        
        
        
        //create slider
       
        slider = [[UISlider alloc] initWithFrame:CGRectMake(50, 300, 200, 10)];
        [slider addTarget:self action:@selector(sliderAction) forControlEvents:UIControlEventValueChanged];
        [slider setBackgroundColor:[UIColor clearColor]];
        slider.minimumValue = 0.0;
        slider.maximumValue = 50.0;
        slider.continuous = YES;
        slider.value = 20.0;
        
        //create switch control
       
        switchControls = [[UISwitch alloc] initWithFrame:CGRectMake(50, 320, 20, 20)];
        [switchControls addTarget: self action: @selector(switchmethod) forControlEvents: UIControlEventValueChanged];
       
        //create Stepper
        stepper =  [[UIStepper alloc]init];
        [stepper setFrame:CGRectMake(50, 350, 155, 25)];
        [stepper setMinimumValue:0];
        
        stepper.maximumValue = 1000;
        stepper.stepValue = 5;
        stepper.wraps = YES;
        stepper.autorepeat = YES;
        stepper.continuous = YES;
        
        
        [stepper addTarget:self action:@selector(someAction:) forControlEvents:UIControlEventValueChanged];
        
  }
    return self;
}

 Above code snippet will create these controls and  set their property 
Add your controls on BasicControlsVC by modifying your loadView method as shown below


-(void)loadView
{
    [super loadView];
    //add view to this view controller
    [self.view addSubview:lable];
    [self.view addSubview:textfield];
    [self.view addSubview:textview];
    [self.view addSubview:button];
    [self.view addSubview:imageview];
    [self.view addSubview:slider];
    [self.view addSubview:switchControls];
    [self.view addSubview:stepper];
    
    
    
}


3. addTarget:self action:@selector
you can add selector method on  contols eg. UIButton to perform an action when button clicks

[button addTarget:self 
                   action:@selector(aMethod)
         forControlEvents:UIControlEventTouchUpInside];


and ofcourse you have to implement  this aMethod

-(void)aMethod
{
    NSLog(@"button clicked");
    lable.text=@"button clicked";
    
}
 like wise here i implemented respective @selector method for UISwitch,UIStepper,UISlider



-(void)sliderAction
{
    NSLog(@"value changed");
    lable.text=@"value changed";
    
   
 }

-(void)switchmethod
{
    if(switchControls.on)
    {
    NSLog(@"ON");
        lable.text=@"ON";
    }else
    {
       NSLog(@"OFF"); 
        lable.text=@"OFF";
    }
}

- (void) someAction:(UIStepper *) stepper {
    NSLog(@"stepper clicked");
    lable.text = [NSString stringWithFormat:@"%.f", stepper.value];
}





4. Implement UITextFieldDelegate and UITextViewDelegate Method 
As you know when you are dealing with TextField or TextView in iPhone , Keyboard automatically appears and by clicking return button it hides.
To achieve this must implement these two method 


- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return NO;
}

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
    
    if([text isEqualToString:@"\n"]) {
        [textView resignFirstResponder];
        return NO;
    }
    
    return YES;
}



5. Now Build and run your Project you'll get something like that


full source code of this BasicUIControlsDemo you can grab from
here  http://www.4shared.com/zip/KeHWh86P/BasicUIControlsDemo.html


feel free to query @:    bpsingh216@gmail.com
enjoy coding :-)


Friday, 13 July 2012

How to download and install .apk from server(not market app) programmatically

Hi folks,
If you are planning to develop android application which is responsible to download .apk file from server(not market app,Enterprise distribution) and then install it on to the device this post will help you
so here is the choice.

1. Download Manager: this can be done using the Download Manager available from 2.3.3 your newely downloaded file goes in Downloads application as shown below,you can install your newly download .apk by clicking on it .


Android system just ask for permission to install  your .apk with the help of Package Installer . This seems that after downloading their is no controls of your application to install it rather than going to downloads and manually install the .apk .I am not explaing the the code for Download Manager coz this post is all about "How to download .apk from server and  install it programatically" :-).
So  here is the 2nd way


2. 
a. First download .apk file using simple http connection and store it on external storage area.


private void downloadapk(){
    try {
        URL url = new URL("http://www.efimoto.com/nilesh/HelloWorldProject.apk");
        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
        urlConnection.setRequestMethod("GET");
        urlConnection.setDoOutput(true);
        urlConnection.connect();

        File sdcard = Environment.getExternalStorageDirectory();
        File file = new File(sdcard, "filename.apk");

        FileOutputStream fileOutput = new FileOutputStream(file);
        InputStream inputStream = urlConnection.getInputStream();

        byte[] buffer = new byte[1024];
        int bufferLength = 0;

        while ( (bufferLength = inputStream.read(buffer)) > 0 ) {
            fileOutput.write(buffer, 0, bufferLength);
        }
        fileOutput.close();
        this.checkUnknownSourceEnability();
        this.initiateInstallation();

    } catch (MalformedURLException e) {
            e.printStackTrace();
    } catch (IOException e) {
            e.printStackTrace();
    }
    }


b. Now instantiate installing process.

 private void installApk(){
        Intent intent = new Intent(Intent.ACTION_VIEW);
        Uri uri = Uri.fromFile(new File("/sdcard/filename.apk"));
        intent.setDataAndType(uri, "application/vnd.android.package-archive");
        startActivity(intent);
    }

c.  Give uses-permission in application menifest file.

 <uses-permission android:name="android.permission.INSTALL_PACKAGES"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>
    <uses-permission android:name="android.permission.INTERNET"/>
d. Ensure that your "Unknown source " check box must enable.




I have been created simple UI for this  having a button when button clicked it downloads apk after that installation process appears . If unknown source is disable you must got "Install blocked"


That's all, you are successfully downloaded and installed your .apk from server.
feel free to query @:    bpsingh216@gmail.com
enjoy coding :-)





Saturday, 30 June 2012

How to solve "Oops, Yelp is overworked right now"


Hi folks,
This short post will help those who are planning to integrate Yelp in their mobile application for local business search ,getting review of customer about particular business  and much more.(for more hit www.yelp.com)
As the very first step of your yelp integration i.e. Signup  you will definitely  get above error if you are not  from the country list which yelp supports or may be if your IP address don't support  .
So to solve this problem i used proxy site (eg.http://ihide.info/).There are lots of free proxy site just google it.


I entered yelp signup url using above  proxy site and  that's it  No more Oops :-)








Thanks
for any query mail @ bpsingh216@gmail.com

Saturday, 23 June 2012

HelloWorld iPhone Application

Hi folks,
Since it has been a long time that you people did not get any post from my side,This is very first post about iPhone app development .
I assume you people are familiar with basic of objective c and cocoa framework and Xcode.
So this post bring you the anatomy of first HelloWorld  application
let's start...

Prerequisites
1. Xcode
2.basic of  objective c and iphone SDK
last and foremost  patience :-)
Here are the following steps you need to build your HelloWorld application
1.Create new XCode Project
  Create your  project going through XCode ->File ->New Project and select  Empty Application .Name the project HelloWorld and click Save as shown in figure





XCode will create two file AppDelegate.h and AppDelegate.m . Difference between .h and .m file is in objective c all declaration goes to  .h file and implementation goes to .m file.
Now What  is AppDelegate  actually?
 When you create your  project, main.m file under  Supporting files is generated by XCode

it looks like

#import <UIKit/UIKit.h>

int main(int argc, char *argv[])
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}
 as in any C program the execution of Objective -c application starts from main().the main() function starts by creating autorelease pool and ends by releasing it. In between it makes a call to the UiApplicationMain() function. UiApplicationMain() is declared as follows


int UIApplicationMain(int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName);


The UiApplicationMain() instantiate the application and the application delegate objects. after that,it sets the delegate property of the application object to the application delegate instance.


The Typical application delegate class looks like
#import <UIKit/UIKit.h>

@interface AppDelegate : NSObject <UIApplicationDelegate>
{
    
}
@end

Notice that application delegate class inherits NSObject class and adopts UIApplicationDelegate protocol and implements the UIApplicationDelegate methods.One of the very first  method of UiApplicationDelegate is 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{}

This method is starting point for developer didFinishLaunchinWithOptions is application life cycle method it is called when application will launch (onCreate() in Android )


 Note : NSObject is the super class of all classes available in objective c and Protocol is  here interface 


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}



above code simply illustrate that when application will launch  a new window will be allocated by 

self.window = [[[UIWindow allocinitWithFrame:[[UIScreen mainScreenbounds]] autorelease];

and  set its background color to white by  

self.window.backgroundColor = [UIColor whiteColor];

at last make it visible.

2. Create User Interface using code 
 For your application very first object you need is appdelegate class which we have been seen above
now suppose you application has more than one screen so how will you create your screen(View)?
In iphone each screen is   ViewController (in Android Activity).
For this create a simple class which is a subclass of UIViewController going through
right click on AppDelegate.h  >>>newFile  >>Cocoa Touch >> UiViewController subclass >>next.
Name the file  and create it.





 3. Create object of your newly created UIViewController and add it to the main Window.


modify AppDelegate.h file with following piece of code

#import <UIKit/UIKit.h>
#import "HelloWorldViewController.h"

@interface AppDelegate : UIResponder <UIApplicationDelegate>
{
    HelloWorldViewController *helloWorldVC;
}

@property (strong, nonatomic) UIWindow *window;

@end

modify AppDelegate.m file

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // create viewcontroller object
    helloWorldVC=[[HelloWorldViewController alloc]init];
    
    
   //add it to the window
    [self.window addSubview:helloWorldVC.view];
    [self.window makeKeyAndVisible];
    return YES;
}

what you have done so far is you have created  HelloWorldViewController and added it to main window. now create label in your controller 

4.Create UiLabel and add it to HelloWorldViewController


  •  Open HelloWorldViewController.h file and declare UILabel

#import <UIKit/UIKit.h>

@interface HelloWorldViewController : UIViewController
{
    UILabel *label;
}

@end


  •  Open HelloWorldViewController.m file create label and set it's property

#import "HelloWorldViewController.h"

@implementation HelloWorldViewController

- (id)init
{
    self = [super init];
    if (self) {
        label=[[UILabel alloc]initWithFrame:CGRectMake(100, 250, 200, 30)];
        label.text=@"HelloWorld";
    }
    return self;
}

  •  Add label to ViewController
-(void)loadView
{
    [super loadView];
    [self.view addSubview:label];
}


5. Build and Run
Run your project by clicking run button (top left corner in XCode).





enjoy coding......
Feel free to comment .For any query mail me @ bpsingh216@gmail.com






Wednesday, 22 February 2012

How to add text to the ListView in Android


Hello frineds
This post will help you  to  add items to the Listview in android

Here is the output


Android comes with ListView Widget
There is two way to add item(String) to the list view
1st:
 Add String Array resource  in string.xml
Here is my string.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="hello">Hello World, ListviewExampleActivity!</string>
    <string name="app_name">ListviewExample</string>
    <string-array name="ListItem">
        <item >Red</item>
        <item >Green</item>
        <item >Blue</item>
        <item >Yellow</item>
        <item >Cyan</item>
       
    </string-array>

</resources>



Now add  android:entries=”@array/ListItem” to the ListView Widget
Here is my main.xml file

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

  

    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/ListItem">
    </ListView>

</LinearLayout>


2nd way

Create ArrayAdapter  having String Array resource and set it to the Listview
Here is my ListView.java Activity

package com.bp.listview;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class ListviewExampleActivity extends Activity {
ListView l;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       String  arr[]={"Red","Green","Blue","Yellow","Cyan"};
      l=(ListView) findViewById(R.id.listView1);
  ArrayAdapter<String> adapter=new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, arr);
  l.setAdapter(adapter);
  
        
    }
}

enjoy coding
for any query feel free to write @ bpsingh216@gmail.com
comment if it is usefull..