Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android調用.net的webservice的例子獲取手機的歸屬地

android調用.net的webservice的例子獲取手機的歸屬地

編輯:關於Android編程

package com.example.usewebservice;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity
{
	/** 
	 * 
	 * Android平台調用WebService(手機號碼歸屬地查詢)
	 * @author yejianping  
	 * @date 2014-4-3 
	 * 要先把ksoap2-android-assembly-2.5.4-jar-with-dependencies.jar這個庫導入到lib裡面
	 *  
	 **/
	public EditText text ;
	public Button button;
	public TextView tx;
	public String telephone_number;
	public MyThread thread;
	public Handler handler; 
	
	@SuppressLint("HandlerLeak")
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		text = (EditText)findViewById(R.id.editText1);
		button = (Button)findViewById(R.id.button1);
		thread = new MyThread();
		button.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v)
			{
				// TODO 自動生成的方法存根 
			 telephone_number = text.getText().toString().trim();
				if(telephone_number.equals("")||telephone_number.length()<7)
				{
					text.setError("您輸入的手機號碼(段)有誤!");
					text.requestFocus();
				}
				else
				{
					new Thread(thread).start();;
				}
			}
		});
		
		handler = new Handler() {
			@SuppressLint("HandlerLeak")
			public void handleMessage(Message msg) {
				switch (msg.what) {
				case 0x01:
					Bundle bundle = new Bundle();
	    			bundle = msg.getData();
	    			Toast.makeText(MainActivity.this, bundle.getString("result"), Toast.LENGTH_SHORT).show();
				}
			}
		};
		
	}
	
	
	//創建線程
    public  class MyThread implements Runnable
    {
	   	public void run() 
	   	{	
      		Looper.prepare();//創建本線程的消息隊列並初始化
      		getTelephoneInfo(telephone_number);
      		Looper.loop();//開始運行消息隊列
	   	}
     }
	
	
	
	public void getTelephoneInfo(String phone_number)
	{
		//命名空間
		String nameSpace = "http://WebXml.com.cn/";
		//調用的方法名稱
		String methodName = "getMobileCodeInfo";
		// webservice的網址
		String URL = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx";
		//命名空間+方法
		String soapAction = "http://WebXml.com.cn/getMobileCodeInfo";
		// 指定WebService的命名空間和調用的方法名
		SoapObject rpc = new SoapObject(nameSpace, methodName);
		// 設置需調用WebService接口需要傳入的兩個參數mobileCode、userId
		rpc.addProperty("mobileCode", phone_number);
		rpc.addProperty("userId", "");
		// 生成調用WebService方法的SOAP請求信息,並指定SOAP的版本
		SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
		envelope.bodyOut = rpc;
		// 設置是否調用的是dotNet開發的WebService
		envelope.dotNet = true;
		// 等價於
		envelope.bodyOut = rpc;
		envelope.setOutputSoapObject(rpc);
		HttpTransportSE transport = new HttpTransportSE(URL);
		try 
		{
			// 調用WebService
			transport.call(soapAction, envelope);
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
		 
		// 獲取返回的數據
		SoapObject object = (SoapObject) envelope.bodyIn;
		// 獲取返回的結果
		String result = object.getProperty("getMobileCodeInfoResult").toString();
		Message msg=new Message();	
		Bundle bundle = new Bundle();
		bundle.putString("result", result);
		msg.setData(bundle);
		msg.what = 0x01;
		handler.handleMessage(msg);
		//return result;
		// 將WebService返回的結果顯示在TextView中
		//tx.setText(result);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

xml的代碼為;



    

    

    

源碼下載

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved