Search This Blog

Saturday, 28 April 2012

Function to resize image through coding in Blackberry

Hello friends,
as i posted this earlier,but i think a function can be more helpful then a hard coding . So, here is the function to resize an image.

public Bitmap resize(String src,int width,int height){//src = ur filename with extension for ex: "abc.jpg", width=rreq. width,height=req. height//
        int oolddWidth;
        int oolddHeight;
        int ddispplayWidth;
        int ddispplayHeight;
        EncodedImage eih1 = EncodedImage.getEncodedImageResource(src);
        oolddWidth = eih1.getWidth();
        oolddHeight = eih1.getHeight();
        if(width!=0){
        ddispplayWidth = width;
        }else{
            ddispplayWidth = eih1.getWidth();
        }
        if(height!=0){
        ddispplayHeight = height;
        }else{
            ddispplayHeight = eih1.getHeight();
        }
            int nnumeerator = net.rim.device.api.math.Fixed32.toFP(oolddWidth);
            int ddenoominator = net.rim.device.api.math.Fixed32.toFP(ddispplayWidth);
            int wwidtthScale = net.rim.device.api.math.Fixed32.div(nnumeerator, ddenoominator);
            nnumeerator = net.rim.device.api.math.Fixed32.toFP(oolddHeight);
            ddenoominator = net.rim.device.api.math.Fixed32.toFP(ddispplayHeight);
            int hheighhtScale = net.rim.device.api.math.Fixed32.div(nnumeerator, ddenoominator);
            EncodedImage newEih1 = eih1.scaleImage32(wwidtthScale, hheighhtScale);
            final Bitmap header1 = newEih1.getBitmap();
            return header1;
    }

How to make your app able to use network BES,Direct TCP or Wifi

Hello friends,
Here is the code to make your app able to communicate to remote server with the available service no matter if it is BES ,Direct TCP,or Wifi...
Code:
if(WLANInfo.getWLANState()==WLANInfo.WLAN_STATE_CONNECTED){
                        ConnectionParameter = ";interface=wifi";
                    }else if((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_DIRECT) == CoverageInfo.COVERAGE_DIRECT) {
                        String carrierUid = getCarrierBIBSUid();
                        if(carrierUid == null)
                        {
                            // Has carrier coverage, but not BIBS.  So use the carrier's TCP network
//                            logMessage("No Uid");
                            ConnectionParameter = ";deviceside=true";
                        }
                        else
                        {
                            // otherwise, use the Uid to construct a valid carrier BIBS request
//                            logMessage("uid is: " + carrierUid);
                            ConnectionParameter = ";deviceside=false;connectionUID="+carrierUid + ";ConnectionType=mds-public";
                        }
                   
                       
                    }else if((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_MDS) == CoverageInfo.COVERAGE_MDS)
                    {
//                        logMessage("MDS coverage found");
                         ConnectionParameter = ";deviceside=false";
                    }
                   
Now, just pass this ConnectionParameter String variable with your url for ex:

"http://www.abc.com"+ConnectionParamter;
The app will detect which network type is available and pass the parameters as required for the available network type.

The following is the function for "getCarrierBIBSUid()"

 private static String getCarrierBIBSUid()
        {
            ServiceRecord[] records = ServiceBook.getSB().getRecords();
            int currentRecord;

            for(currentRecord = 0; currentRecord < records.length; currentRecord++)         {             if(records[currentRecord].getCid().toLowerCase().equals("ippp"))             {                 if(records[currentRecord].getName().toLowerCase().indexOf("bibs") >= 0)
                    {
                        return records[currentRecord].getUid();
                    }
            }
            }
            return null;
    }

Friday, 27 April 2012

How to get Location of device using GPS in Blackberry

Hello,
          So here is the code for getting current Location of the device using GPS.You may use a timer and use this code for Live Tracking.

Code:

    _timer = new Timer();
            _timerTask = new TimerTask(){
                public void run() {
                    try {
        _criteria = new BlackBerryCriteria();
        _locationProvider =  (BlackBerryLocationProvider)LocationProvider.getInstance(_criteria);
   _location = (BlackBerryLocation)_locationProvider.getLocation(-1);
                                        }catch(Exception e){
                        System.out.println("Error : "+e.toString());
                    }
                       
                    _imei =GPRSInfo.imeiToString(GPRSInfo.getIMEI(), false);<to get the imei of the device>
                     if(GPSInfo.isGPSModeAvailable(GPSInfo.GPS_MODE_AUTONOMOUS)){
                           _criteria.setMode(GPSInfo.GPS_MODE_AUTONOMOUS);
                                           }else if(GPSInfo.isGPSModeAvailable(GPSInfo.GPS_MODE_CDMA_ACCURACY_OPTIMAL)){
                           _criteria.setMode(GPSInfo.GPS_MODE_CDMA_ACCURACY_OPTIMAL);
                                                }else if(GPSInfo.isGPSModeAvailable(GPSInfo.GPS_MODE_BT)){
                           _criteria.setMode(GPSInfo.GPS_MODE_BT);
                                                }else if(GPSInfo.isGPSModeAvailable(GPSInfo.GPS_MODE_ASSIST)){
                           _criteria.setMode(GPSInfo.GPS_MODE_ASSIST);
                                                }else if(GPSInfo.isGPSModeAvailable(GPSInfo.GPS_MODE_CDMA_DATA_OPTIMAL)){
                           _criteria.setMode(GPSInfo.GPS_MODE_CDMA_DATA_OPTIMAL);
                                                  }else if(GPSInfo.isGPSModeAvailable(GPSInfo.GPS_MODE_CDMA_MS_ASSIST)){
                           _criteria.setMode(GPSInfo.GPS_MODE_CDMA_MS_ASSIST);
                                               }else if(GPSInfo.isGPSModeAvailable(GPSInfo.GPS_MODE_CDMA_MS_BASED)){
                           _criteria.setMode(GPSInfo.GPS_MODE_CDMA_MS_BASED);
                                                 }else if(GPSInfo.isGPSModeAvailable(GPSInfo.GPS_MODE_CDMA_SPEED_OPTIMAL)){
                           _criteria.setMode(GPSInfo.GPS_MODE_CDMA_SPEED_OPTIMAL);
                                                }else if(GPSInfo.isGPSModeAvailable(GPSInfo.GPS_MODE_CELLSITE)){
                           _criteria.setMode(GPSInfo.GPS_MODE_CELLSITE);
                                                  }else{
                           UiApplication.getUiApplication().invokeLater(new Runnable(){

                            public void run() {
                                Dialog.alert("Please Enable your GPS.");  
                            }
                            });
                            }
                                                                            try{
                        _criteria.setHorizontalAccuracy(5);
                        _criteria.setVerticalAccuracy(5);
                        _criteria.setPreferredResponseTime(30000);
                       
                                      
                    _locationProvider = (BlackBerryLocationProvider)LocationProvider.getInstance(_criteria);
                    _location = (BlackBerryLocation)_locationProvider.getLocation(-1);
                    _lat = _location.getQualifiedCoordinates().getLatitude();<fetch latitude in a varible >
                    _lon = _location.getQualifiedCoordinates().getLongitude();<fetch longitude in a variable>
                                      }catch(Exception e){
                        System.out.println("Error cant write on port");
                    }
                     System.out.println("Successfull");
                       }}catch(final Exception e){
                        UiApplication.getUiApplication().invokeLater(new Runnable(){
                            public void run() {
//                                Dialog.alert("Error :"+e.toString());
                            }
                        });
                        }
                        }
                };
            _timer.scheduleAtFixedRate(_timerTask,60000,_time);

Thursday, 19 April 2012

FLEX:How to add a google Map in your Blackberry Playbook app

Hello friends,
              Sorry for not posting from last many days , i was working on Flex,and here i am with the first Post how to add a google map on your blackberry playbook app in flex



Code:(your mxml file):
<fx:Script>
        <![CDATA[
            import com.google.maps.LatLng;
            import com.google.maps.MapEvent;
            import com.google.maps.MapType;
            import com.google.maps.controls.MapTypeControl;
            import com.google.maps.controls.OverviewMapControl;
            import com.google.maps.controls.PositionControl;
            import com.google.maps.controls.ScaleControl;
            import com.google.maps.controls.ZoomControl;
            import com.google.maps.controls.ZoomControlOptions;
            import com.google.maps.overlays.Marker;
            import com.google.maps.overlays.MarkerOptions;
           
            public var timer:Timer = new Timer(10000);
                    
            public var _urlLoader:URLLoader;
            public var _lat:Number;
            public var _lon:Number;
                      
            protected function map_mapevent_mapreadyHandler(event:MapEvent):void
            {
                map.addControl(new ZoomControl());
                map.addControl(new PositionControl());
                map.addControl(new MapTypeControl());
                map.addControl(new ScaleControl());
                map.addControl(new OverviewMapControl());
                map.setCenter(new LatLng(<latitude>,<Longitude>),13,MapType.NORMAL_MAP_TYPE);
                var _marker:Marker=new Marker(new LatLng(<latitude>,<Longitude>));
                this.map.addOverlay(_marker);
                }
           
</fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <maps:Map id="map" x="0" y="0" width="1024" height="600" key="Your API key for GoogleMapsAPI for flash" url="your url" sensor = "true" mapevent_mapready="map_mapevent_mapreadyHandler(event)"/>
   
</s:Application>


Download GoogleMapsApi for Flex.

What you need to do is to unzip the folder and extract the files from there copy "map_flex_1_20.swc to the folder "libs" in your project.
        

Thursday, 5 April 2012

How to use jSon to fetch data

Hello friends,
         So here is the code to use jSon and fetch data from remote database....


HttpConnection http=null;
        InputStream _input = null;
        boolean ret = false;
        try{
            StringBuffer _buffer = new StringBuffer();
            String _str = new String();
            String ConnectionParameter="";
            if(WLANInfo.getWLANState() == WLANInfo.WLAN_STATE_CONNECTED){
                ConnectionParameter = ";interface=wifi";
            }else{
                ConnectionParameter=";deviceside=true";
            }
            String desiredEncoding = "ISO-8859-1";
            String url = new String(<URL>);
            http = (HttpConnection)Connector.open(url+ConnectionParameter);
            _input = http.openDataInputStream();
            if(http.getResponseCode()==HttpConnection.HTTP_OK)
            {
                int ch;   
                String contentType = http.getHeaderField("Content-Type");
                if(contentType!=null)
                {
                    contentType=contentType.toUpperCase();
                    if (contentType.indexOf("UTF-8")!=-1)
                    {
                        desiredEncoding="UTF-8";
                    }
                }
                InputStreamReader isr = new InputStreamReader(_input,desiredEncoding);
                while((ch=isr.read())!=-1)
                {
                    _buffer.append((char)ch);
                }
                _str = _buffer.toString();
                try
                {   
                    MyApp.jArray1 = new JSONArray(_str);
                }
                catch(Exception e)
                {
                    Dialog.alert("jarray error");       
                }
                MyApp._channelImagePath = new String[MyApp.jArray1.length()];
                MyApp._countryText1 = new String[MyApp.jArray1.length()];
                MyApp._channelurl = new String[MyApp.jArray1.length()];
                for(int i=0;i<MyApp.jArray1.length();i++)
                {
                    try
                    {
                        MyApp.json_data1 = MyApp.jArray1.getJSONObject(i);
                    }
                    catch(Exception e)
                    {
                        Dialog.alert("jobject");       
                    }
                    try
                    {   
                         //You get data here as follows and save it to an array,make changes as per your requirement its just an example
                        MyApp._countryText1[i] = MyApp.json_data1.getString(<column name>);
                        MyApp._channelImagePath[i]=(MyApp.json_data1.getString(<column name>));
                        MyApp._channelurl[i]=(MyApp.json_data1.getString(<column name>));
                    }
                    catch (Exception ee)
                    {
                    }
                    }
                if(_str.indexOf("SUCCESS")!=-1)
                {
                    ret = true;
                }
            }
            _input.close();
            http.close();
            _input=null;
            http=null;
        }catch(Exception e){
        }finally
        {
            try
            {
                if(_input!=null)
                    _input.close();
                _input = null;
                if(http!=null)
                    http.close();
                http =null;
            }
            catch(Exception e){}
        }