Step by Step Method to Access Webservice from Android
By Mihira Prasanna | 24 Sep 2010
How to access webservice from Android mobile application
Part of The Mobile Zone
See Also
21
Sponsored Links
System Requirements
The sections below describe the system and software requirements for developing Android applications using the Android
Supported Operating Systems
- Windows XP (32-bit) or Vista (32- or 64-bit)
- Mac OS X 10.5.8 or later (x86 only)
- Linux (tested on Linux Ubuntu Hardy Heron)
Supported Development Environments
Eclipse IDE
- Eclipse 3.4 (Ganymede) or 3.5 (Galileo)
Caution: There are known issues with the ADT plugin running with Eclipse 3.6. Please stay on 3.5 until further notice.
- Eclipse JDT plugin (included in most Eclipse IDE packages)
- If you need to install or update Eclipse, you can download it from http://www.eclipse.org/downloads/ . Several types of Eclipse packages are available for each platform. For developing Android
- Eclipse IDE for Java EE Developers
- Eclipse IDE for Java Developers
- Eclipse for RCP/Plug-in Developers
- Eclipse Classic (versions 3.5.1 and higher)
- JDK 5 or JDK 6 (JRE alone is not sufficient)
- Android (optional)
- Not compatible with Gnu Compiler for Java (gcj)
Hardware Requirements
The Android
Component type | Approximate size | Comments |
SDK Tools | 50 MB | Required. |
Android | 150 MB | At least one platform is required. |
SDK Add-on (each) | 100 MB | Optional. |
USB Driver for Windows | 10 MB | Optional. For Windows only. |
Samples (per platform) | 10M | Optional. |
Offline documentation | 250 MB | Optional. |
Note that the disk-space requirements above are in addition to those of the Eclipse IDE, JDK, or other prerequisite tools that you may need to install on your development computer.
Installing the ADT Plugin for Eclipse
- Start Eclipse, then select Help > Install New Software .
- In the Available Software dialog, click Add... .
- In the Add Site dialog that appears, enter a name for the remote site (for example, "Android
In the "Location" field, enter this URL:
https://dl-ssl.google.com/android
Note : If you have trouble acquiring the plugin, you can try using "http" in the URL, instead of "https" (https is preferred for security reasons).
Click OK .
- Back in the Available Software view, you should now see "Developer Tools" added to the list. Select the checkbox next to Developer Tools, which will automatically select the nested tools Android DDMS and Android Development Tools. Click Next .
- In the resulting Install Details dialog, the Android DDMS and Android Development Tools features are listed. Click Next to read and accept the license agreement and install any dependencies, then click Finish .
- Restart Eclipse.
Configuring the ADT Plugin
Once you've successfully downloaded ADT as described above, the next step is to modify your ADT preferences in Eclipse to point to the Android
- Select Window > Preferences... to open the Preferences panel (Mac OS X: Eclipse > Preferences ).
- Select Android from the left panel.
- For the SDK Location in the main panel, click Browse... and locate your downloaded SDK directory.
Click Apply , then OK .
Creating an Android
The ADT plugin provides a New Project Wizard that you can use to quickly create a new Android
- Select File > New > Project .
- Select Android > Android , and click Next .
- Select the contents for the project:
- Enter 'Android '. This will be the name of the folder where your project is created.
- Under Contents, select Create new project in workspace . Select your project workspace location.
- Under Target, select an Android target to be used as the project's Build Target. The Build Target specifies which Android platform you'd like your application built against. Unless you know that you'll be using new APIs introduced in the latest SDK, you should select a target with the lowest platform version possible.
Note: You can change your the Build Target for your project at any time: Right-click the project in the Package Explorer, select Properties , select Android and then check the desired Project Target. - Under Properties, fill in all necessary fields.
- Enter an Application name as ' Android . This is the human-readable title for your application — the name that will appear on the Android
- Enter a Package name as '
com.test.android
'. This is the package namespace (following the same rules as for packages in the Java programming language) where all your source code will reside. - Select Create Activity (optional, of course, but common) and enter a name (give '
FirstAppUI
') for your mainActivity
class. - Enter a Min SDK Version . This is an integer that indicates the minimum API Level required to properly run your application. Entering this here automatically sets the
minSdkVersion
attribute in the<uses-sdk>
of your Android
- Click Finish .
Tip: You can also start the New Project Wizard from the New icon in the toolbar.
Once you complete the New Project Wizard, ADT creates the following folders and files in your new project:
src/
Includes your stub Activity Java file. All other Java files for your application go here.
<Android /
(e.g., Android
)
Includes the android file that your application will build against. This is determined by the build target that you have chosen in the New Project Wizard.
gen/
This contains the Java files generated by ADT, such as your R.java file and interfaces created from AIDL files.
assets/
This is empty. You can use it to store raw asset files.
res/
A folder for your application resources, such as drawable files, layout files, string values, etc.
Android
Android
default.properties
This file contains project settings, such as the build target. This file is integral to the project, as such, it should be maintained in a Source Revision Control system. It should never be edited manually — to edit project properties, right-click the project folder and select "Properties".
Creating an AVD
An Android
To create an AVD from Eclipse:
- Select Window > Android , or click the Android
- In the Virtual Devices panel, you'll see a list of existing AVDs. Click New to create a new AVD.
- Fill in the details for the AVD. Give it a name, a platform target, an SD card size, and a skin (HVGA is default).
Note: Be sure to define a target for your AVD that satisfies your application's Build Target (the AVD platform target must have an API Level equal to or greater than the API Level that your application compiles against). - Click Create AVD .
Your AVD is now ready and you can either close the SDK and AVD Manager, create more AVDs, or launch an emulator with the AVD by selecting a device and clicking Start .
Code your FirstAppUI.java class like below:
Collapse | Copy Code
package
com.test.android
;
import
org.ksoap2.SoapEnvelope;
import
org.ksoap2.serialization.SoapObject;
import
org.ksoap2.serialization.SoapSerializationEnvelope;
import
org.ksoap2.transport.HttpTransportSE;
import
android
.app.Activity;
import
android
.os.Bundle;
import
android
.widget.ArrayAdapter;
import
android
.widget.AutoCompleteTextView;
public
class
FirstAppUI extends
Activity {
private
static
final
String NAMESPACE = "
com.service.ServiceImpl"
;
private
static
final
String URL =
"
http://192.168.202.124:9000/Android
WS/wsdl/ServiceImpl.wsdl"
;
private
static
final
String SOAP_ACTION = "
ServiceImpl"
;
private
static
final
String METHOD_NAME = "
message"
;
private
static
final
String[] sampleACTV = new
String[] {
"
android
"
, "
iphone"
, "
blackberry"
};
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
ArrayAdapter<String> arrAdapter = new
ArrayAdapter<String>
(this
, android
.R.layout.simple_dropdown_item_1line, sampleACTV);
AutoCompleteTextView ACTV = (AutoCompleteTextView)findViewById
(R.id.AutoCompleteTextView01);
ACTV.setAdapter(arrAdapter);
SoapObject request = new
SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope =
new
SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE android
HttpTransport = new
HttpTransportSE(URL);
try
{
android
HttpTransport.call(SOAP_ACTION, envelope);
SoapObject resultsRequestSOAP = (SoapObject) envelope.bodyIn;
ACTV.setHint("
Received :"
+ resultsRequestSOAP.toString());
} catch
(Exception e) {
e.printStackTrace();
}
}
}
Insert AutoCompleteTextView
to your res>layout >main.xml as:
Collapse | Copy Code
<?
xml
version
="
1.0"
encoding
="
utf-8"
?
>
<
LinearLayout
android
:id
="
@+id/LinearLayout01"
android
:layout_width
="
fill_parent"
android
:layout_height
="
fill_parent"
xmlns:android
="
http://schemas.android
.com/apk/res/android
"
>
<
AutoCompleteTextView
android
:id
="
@+id/AutoCompleteTextView01"
android
:layout_width
="
wrap_content"
android
:layout_height
="
wrap_content"
android
:hint
="
This is Hint"
android
:width
="
240px"
/
>
<
/
LinearLayout
>
Insert Internet access permission to your mobile application in Android file as:
Collapse | Copy Code
<?
xml
version
="
1.0"
encoding
="
utf-8"
?
>
<
manifest
xmlns:android
="
http://schemas.android
.com/apk/res/android
"
package
="
com.test.android
"
android
:versionCode
="
1"
android
:versionName
="
1.0"
>
<
application
android
:icon
="
@drawable/icon"
android
:label
="
@string/app_name"
>
<
activity
android
:name
="
.FirstAppUI"
android
:label
="
@string/app_name"
>
<
intent-filter
>
<
action
android
:name
="
android
.intent.action.MAIN"
/
>
<
category
android
:name
="
android
.intent.category.LAUNCHER"
/
>
<
/
intent-filter
>
<
/
activity
>
<
/
application
>
<
uses-permission
android
:name
="
android
.permission.INTERNET"
>
<
/
uses-permission
>
<
uses-sdk
android
:minSdkVersion
="
8"
/
>
<
/
manifest
>
ServiceImpl.wsdl :
Collapse | Copy Code
<?
xml
version
="
1.0"
encoding
="
UTF-8"
?
>
<
wsdl:definitions
targetNamespace
=http://service.com
xmlns:apachesoap
=http://xml.apache.org/xml-soap
xmlns:impl
="
http://service.com"
xmlns:intf
=http://service.com
xmlns:wsdl
=http://schemas.xmlsoap.org/wsdl/
xmlns:wsdlsoap
=http://schemas.xmlsoap.org/wsdl/soap/
xmlns:xsd
="
http://www.w3.org/2001/XMLSchema"
>
<!--
WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)
-->
<
wsdl:types
>
<
schema
elementFormDefault
="
qualified"
targetNamespace
="
http://service.com"
xmlns
="
http://www.w3.org/2001/XMLSchema"
>
<
element
name
="
message"
>
<
complexType
/
>
<
/
element
>
<
element
name
="
messageResponse"
>
<
complexType
>
<
sequence
>
<
element
name
="
messageReturn"
type
="
xsd:string"
/
>
<
/
sequence
>
<
/
complexType
>
<
/
element
>
<
/
schema
>
<
/
wsdl:types
>
<
wsdl:message
name
="
messageResponse"
>
<
wsdl:part
element
="
impl:messageResponse"
name
="
parameters"
>
<
/
wsdl:part
>
<
/
wsdl:message
>
<
wsdl:message
name
="
messageRequest"
>
<
wsdl:part
element
="
impl:message"
name
="
parameters"
>
<
/
wsdl:part
>
<
/
wsdl:message
>
<
wsdl:portType
name
="
ServiceImpl"
>
<
wsdl:operation
name
="
message"
>
<
wsdl:input
message
="
impl:messageRequest"
name
="
messageRequest"
>
<
/
wsdl:input
>
<
wsdl:output
message
="
impl:messageResponse"
name
="
messageResponse"
>
<
/
wsdl:output
>
<
/
wsdl:operation
>
<
/
wsdl:portType
>
<
wsdl:binding
name
="
ServiceImplSoapBinding"
type
="
impl:ServiceImpl"
>
<
wsdlsoap:binding
style
="
document"
transport
="
http://schemas.xmlsoap.org/soap/http"
/
>
<
wsdl:operation
name
="
message"
>
<
wsdlsoap:operation
soapAction
="
"
/
>
<
wsdl:input
name
="
messageRequest"
>
<
wsdlsoap:body
use
="
literal"
/
>
<
/
wsdl:input
>
<
wsdl:output
name
="
messageResponse"
>
<
wsdlsoap:body
use
="
literal"
/
>
<
/
wsdl:output
>
<
/
wsdl:operation
>
<
/
wsdl:binding
>
<
wsdl:service
name
="
ServiceImplService"
>
<
wsdl:port
binding
="
impl:ServiceImplSoapBinding"
name
="
ServiceImpl"
>
<
wsdlsoap:address
location
=
"
http://localhost:9000/Android
WS/services
/ServiceImpl"
/
>
<
/
wsdl:port
>
<
/
wsdl:service
>
<
/
wsdl:definitions
>
Thanks!
History
- 24th September, 2010: Initial post
License
This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)
标签:web,Eclipse,project,Android,services,new,android,your From: https://blog.51cto.com/u_16034393/6871735