EX09_03.java
上传用户:vip_99
上传日期:2021-03-27
资源大小:61159k
文件大小:4k
源码类别:

android开发

开发平台:

Java

  1. package irdc.ex09_03; 
  2. import java.net.HttpURLConnection; 
  3. import java.net.URL; 
  4. import java.net.URLEncoder; 
  5. import android.app.Activity; 
  6. import android.os.Bundle; 
  7. import android.view.KeyEvent; 
  8. import android.view.View; 
  9. import android.webkit.WebView; 
  10. import android.widget.Button; 
  11. import android.widget.EditText; 
  12. public class EX09_03 extends Activity 
  13.   private Button mButton01; 
  14.   private EditText mEditText01; 
  15.   private WebView mWebView01; 
  16.   private boolean bInternetConnectivity=false; 
  17.    
  18.   /** Called when the activity is first created. */ 
  19.   @Override 
  20.   public void onCreate(Bundle savedInstanceState) 
  21.   { 
  22.     super.onCreate(savedInstanceState); 
  23.     setContentView(R.layout.main); 
  24.      
  25.     /* 测试手机是否具有连接Google API的连接能力 */ 
  26.     if(checkInternetConnection 
  27.        ("http://code.google.com/intl/zh-TW/apis/chart/","utf-8") 
  28.       ) 
  29.     { 
  30.       bInternetConnectivity = true; 
  31.     } 
  32.      
  33.     mWebView01 = (WebView)findViewById(R.id.myWebView1); 
  34.     mButton01 = (Button)findViewById(R.id.myButton1); 
  35.     mButton01.setOnClickListener(new Button.OnClickListener() 
  36.     { 
  37.       @Override 
  38.       public void onClick(View v) 
  39.       { 
  40.         // TODO Auto-generated method stub 
  41.         if(mEditText01.getText().toString()!="" &&  
  42.            bInternetConnectivity==true) 
  43.         { 
  44.           mWebView01.loadData 
  45.           ( 
  46.               /* 调用自定义云端生成QR Code函数 */ 
  47.             genGoogleQRChart 
  48.             ( 
  49.               mEditText01.getText().toString(),120 
  50.             ),"text/html", "utf-8" 
  51.           ); 
  52.         } 
  53.       } 
  54.     }); 
  55.      
  56.     mEditText01 = (EditText)findViewById(R.id.myEditText1); 
  57.     mEditText01.setText(R.string.str_text); 
  58.     
  59.     mEditText01.setOnKeyListener(new EditText.OnKeyListener() 
  60.     { 
  61.       @Override 
  62.       public boolean onKey(View v, int keyCode, KeyEvent event) 
  63.       { 
  64.         // TODO Auto-generated method stub 
  65.          
  66.         if(mEditText01.getText().toString()!="" && 
  67.            bInternetConnectivity==true) 
  68.         { 
  69.           mWebView01.loadData 
  70.           ( 
  71.             genGoogleQRChart 
  72.             ( 
  73.               mEditText01.getText().toString(),120 
  74.             ),"text/html", "utf-8" 
  75.           ); 
  76.         } 
  77.         return false; 
  78.       } 
  79.     }); 
  80.   } 
  81.    
  82.   /* 调用Google API,产生QR Code二维条形码 */
  83.   public String genGoogleQRChart(String strToQRCode, int strWidth) 
  84.   { 
  85.     String strReturn=""; 
  86.     try 
  87.     { 
  88.       strReturn = new String(strToQRCode.getBytes("utf-8")); 
  89.        
  90.       /* 组成Google API需要的传输参数字符串 */
  91.       strReturn = "<html><body>"+ 
  92.       "<img src=http://chart.apis.google.com/chart?chs="+ 
  93.       strWidth+"x"+strWidth+"&chl="+ 
  94.       URLEncoder.encode(strReturn, "utf-8")+ 
  95.       "&choe=UTF-8&cht=qr></body></html>"; 
  96.     } 
  97.     catch (Exception e) 
  98.     { 
  99.       e.printStackTrace(); 
  100.     } 
  101.     return strReturn; 
  102.   } 
  103.    
  104.   /* 检查网络连接是否正常 */ 
  105.   public boolean checkInternetConnection 
  106.   (String strURL, String strEncoding) 
  107.   { 
  108.     /* 最多延时n秒若无应答则表示无法连接 */ 
  109.     int intTimeout = 5; 
  110.     try 
  111.     { 
  112.       HttpURLConnection urlConnection= null; 
  113.       URL url = new URL(strURL); 
  114.       urlConnection=(HttpURLConnection)url.openConnection(); 
  115.       urlConnection.setRequestMethod("GET"); 
  116.       urlConnection.setDoOutput(true); 
  117.       urlConnection.setDoInput(true); 
  118.       urlConnection.setRequestProperty 
  119.       ( 
  120.         "User-Agent","Mozilla/4.0"+ 
  121.         " (compatible; MSIE 6.0; Windows 2000)" 
  122.       ); 
  123.        
  124.       urlConnection.setRequestProperty 
  125.       ("Content-type","text/html; charset="+strEncoding);      
  126.       urlConnection.setConnectTimeout(1000*intTimeout); 
  127.       urlConnection.connect(); 
  128.       if (urlConnection.getResponseCode() == 200) 
  129.       { 
  130.         return true; 
  131.       } 
  132.       else 
  133.       { 
  134.         return false; 
  135.       } 
  136.     } 
  137.     catch (Exception e) 
  138.     { 
  139.       e.printStackTrace(); 
  140.       return false; 
  141.     } 
  142.   } 
  143.    
  144.   /* 自定义BIG5转UTF-8 */ 
  145.   public String big52unicode(String strBIG5) 
  146.   { 
  147.     String strReturn=""; 
  148.     try 
  149.     { 
  150.       strReturn = new String(strBIG5.getBytes("big5"), "UTF-8"); 
  151.     } 
  152.     catch (Exception e) 
  153.     { 
  154.       e.printStackTrace(); 
  155.     } 
  156.     return strReturn; 
  157.   } 
  158.    
  159.   /* 自定义UTF-8转BIG5 */ 
  160.   public String unicode2big5(String strUTF8) 
  161.   { 
  162.     String strReturn=""; 
  163.     try 
  164.     { 
  165.       strReturn = new String(strUTF8.getBytes("UTF-8"), "big5"); 
  166.     } 
  167.     catch (Exception e) 
  168.     { 
  169.       e.printStackTrace(); 
  170.     } 
  171.     return strReturn; 
  172.   } 
  173. }