免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Android支付接入(六):UC支付

  今天跟大家一起看看UC支付,UC支付與其他支付不同之處在于:UC支付結(jié)果是發(fā)送到游戲服務(wù)器端的,所以我們在完成支付后需要詢問服務(wù)器端支付是否成功,當(dāng)確定支付成功后再執(zhí)行相應(yīng)的邏輯。

   UC接入需要注意的事項比較多:

1.UC需要修改桌面游戲Logo,在游戲圖標(biāo)基礎(chǔ)上加上UC的“9”圖標(biāo),規(guī)范及樣例會在百度網(wǎng)盤中為大家共享。

2.需要引入91SDK_LibProject工程作為Library。

3.搭建服務(wù)器用來接收UC返回來的支付結(jié)果(服務(wù)器端接入文檔及demo會在網(wǎng)盤中跟大家共享,我這里沒有搭建服務(wù)器端環(huán)境,無法給大家演示)。

4.支付數(shù)據(jù)存到本地,以便標(biāo)識是否支付成功。

 

網(wǎng)盤地址:http://pan.baidu.com/share/link?shareid=438930&uk=473193131

 這里跟大家一起看下如何將一個工程作為Library及供其它工程引用:

1.將91SDK_LibProject作為一個正常工程引入


2.然后我們看到這里果斷打著個紅嘆號,這意味著有工程文件缺失,右擊項目->Properties->JavaBuild Path  ->Source,看到這里src ismissing此工程用不到Java代碼所以這個直接刪掉就行,然后Clean項目。


圖 1-1


3.紅嘆號沒有了,然后在圖1-1界面選擇左側(cè)邊欄的Android,勾選Is Library確定


3.右擊需要引入次工程的工程(即需要接入付費SDK的工程),選擇properties,選Add將剛才作為Library的工程

引入進(jìn)來



4.當(dāng)你看到AndroidDependencies下有了引入的工程那么工程作為Library引入完畢,如果沒有的話刷新一下Clean一下,如果還沒有那么說明引入過程有問題,重新來一遍

 

下邊來看下代碼:

 

AndroidManifest.xml:

 

[html] view plain copy
  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  2.    package="com.example.blogforuc.uc" 此處要加上.uc的標(biāo)識  
  3.    android:versionCode="1"  
  4.    android:versionName="1.0" >  
  5.  <!-- UC-->  
  6.        <serviceandroid:nameserviceandroid:name="com.catcap.MyService"></service>  
  7.          
  8.        <activity  
  9.            android:name="ucgamesdk.example.ApiGameDataActivity"  
  10.            android:configChanges="keyboardHidden|orientation"  
  11.            android:label="@string/app_name"  
  12.            android:theme="@android:style/Theme.Translucent"  
  13.            android:windowSoftInputMode="adjustResize" >  
  14.        </activity>  
  15.          
  16.        <activity  
  17.            android:name="cn.uc.gamesdk.view.SdkWebActivity"  
  18.            android:configChanges="keyboardHidden|orientation"  
  19.            android:label="@string/app_name"  
  20.            android:theme="@android:style/Theme.Translucent"  
  21.            android:windowSoftInputMode="adjustResize" >  
  22.        </activity>  
  23.          
  24.        <meta-data android:value="cn"android:name="APP_LANGUAGE"/>  
  25.        <meta-data android:value="channel1"android:name="UMOB_CHID"/>  
  26.        <meta-data android:value="XXXX"android:name="UMOB_APPKEY"/>//此處填寫自己申請的  
  27.          
  28.   <!-- UC廣告-->  
  29.        <activityandroid:nameactivityandroid:name="cn.umob.android.ad.UMOBActivity"android:theme="@android:style/Theme.Translucent">  
  30.        </activity>  
  31.        <!-- UC -->  

Fiap.java:支付接口初始化及支付

 

[java] view plain copy
  1. package com.example.blogforuc.uc;  
  2. import cn.uc.gamesdk.UCCallbackListener;  
  3. import cn.uc.gamesdk.UCCallbackListenerNullException;  
  4. import cn.uc.gamesdk.UCGameSDK;  
  5. import cn.uc.gamesdk.UCGameSDKStatusCode;  
  6. import cn.uc.gamesdk.UCLogLevel;  
  7. import cn.uc.gamesdk.info.GameParamInfo;  
  8. import cn.uc.gamesdk.info.OrderInfo;  
  9. import cn.uc.gamesdk.info.PaymentInfo;  
  10. import android.app.Activity;  
  11. import android.app.AlertDialog;  
  12. import android.app.Dialog;  
  13. import android.app.ProgressDialog;  
  14. import android.content.ContentValues;  
  15. import android.content.Context;  
  16. import android.content.DialogInterface;  
  17. import android.content.Intent;  
  18. import android.database.sqlite.SQLiteDatabase;  
  19. import android.net.ConnectivityManager;  
  20. import android.net.NetworkInfo;  
  21. import android.os.Bundle;  
  22. import android.os.Handler;  
  23. import android.os.Message;  
  24. import android.util.Log;  
  25. import android.view.View;  
  26. public class Fiap extends Activity {  
  27.  // ===================================  
  28.  // JAVA  
  29.  // ===================================  
  30.  // 以下參數(shù)僅供測試。在正式集成SDK時,需要使用正式的id數(shù)據(jù)。  
  31.  // 游戲開發(fā)人員需要跟自己的商務(wù)或運(yùn)營人員聯(lián)系獲取。  
  32.  public int cpId = 3;  
  33.  public int gameId = 3;  
  34.  public int serverId = 5;  
  35.  private int catcapcoin;  
  36.  // 調(diào)試模式,此處聯(lián)調(diào)模式時需要置為true  
  37.  public boolean debugMode = false;  
  38.  private MyDBHelper helper;  
  39.  private SQLiteDatabase db;  
  40.  private Intent intent;  
  41.  private Dialog dialog;  
  42.  private MyHandler handler;  
  43.    
  44.  @Override  
  45.  protected void onCreate(BundlesavedInstanceState) {  
  46.   // TODO Auto-generated methodstub  
  47.   super.onCreate(savedInstanceState);  
  48.   setContentView(R.layout.activity_main);  
  49.   intent = new Intent(Fiap.this,MyService.class);  
  50.   this.startService(intent);  
  51.   handler = newMyHandler();  
  52.   findViewById(R.id.button1).setOnClickListener(  
  53.     newView.OnClickListener() {  
  54.      @Override  
  55.      publicvoid onClick(View v) {  
  56.       //TODO Auto-generated method stub  
  57.       android_pay(0);  
  58.      }  
  59.     });  
  60.  }  
  61.  public void android_pay(int catcap_coin) {  
  62.   switch (catcap_coin) {  
  63.   case 0:  
  64.    catcapcoin =2;  
  65.    break;  
  66.   case 1:  
  67.    catcapcoin =4;  
  68.    break;  
  69.   case 2:  
  70.    catcapcoin =6;  
  71.    break;  
  72.   case 3:  
  73.    catcapcoin =8;  
  74.    break;  
  75.   case 4:  
  76.    catcapcoin =10;  
  77.    break;  
  78.   case 5:  
  79.    catcapcoin =12;  
  80.    break;  
  81.   case 6:  
  82.    catcapcoin =14;  
  83.    break;  
  84.   }  
  85.   ucNetworkAndInitUCGameSDK();  
  86.  }  
  87.  public void ucNetworkAndInitUCGameSDK(){  
  88.   // !!!在調(diào)用SDK初始化前進(jìn)行網(wǎng)絡(luò)檢查  
  89.   // 當(dāng)前沒有擁有網(wǎng)絡(luò)  
  90.   if (false ==isNetworkAvailable(this)) {  
  91.    Message msg =new Message();  
  92.    Bundle bundle= new Bundle();  
  93.    bundle.putInt("what",3);  
  94.    msg.setData(bundle);  
  95.    handler.sendMessage(msg);  
  96.   } else {  
  97.    ucSdkInit();// 執(zhí)行UCGameSDK初始化  
  98.   }  
  99.  }  
  100.  public static booleanisNetworkAvailable(Context context) {  
  101.   ConnectivityManager cm =(ConnectivityManager) context  
  102.     .getSystemService(Context.CONNECTIVITY_SERVICE);  
  103.   NetworkInfo info =cm.getActiveNetworkInfo();  
  104.   if (info != null&& info.getState() ==NetworkInfo.State.CONNECTED)  
  105.    returntrue;  
  106.   return false;  
  107.  }  
  108.  private void ucSdkInit() {  
  109.   Message msg = newMessage();  
  110.   Bundle bundle = newBundle();  
  111.   bundle.putInt("what"0);  
  112.   msg.setData(bundle);  
  113.   handler.sendMessage(msg);  
  114.   try {  
  115.    GameParamInfogpi = new GameParamInfo();  
  116.    gpi.setCpId(cpId);  
  117.    gpi.setGameId(gameId);  
  118.    gpi.setServerId(serverId);  
  119.    UCGameSDK.defaultSDK().initSDK(getApplicationContext(),  
  120.      UCLogLevel.DEBUG,debugMode, gpi,  
  121.      newUCCallbackListener<String>() {  
  122.       @Override  
  123.       publicvoid callback(int code, String msg) {  
  124.        Messagemsg2 = new Message();  
  125.        Bundlebundle = new Bundle();  
  126.        bundle.putInt("what",1);  
  127.        msg2.setData(bundle);  
  128.        handler.sendMessage(msg2);  
  129.        Log.e("UCGameSDK","UCGameSDK初始化接口返回數(shù)據(jù) msg:" + msg  
  130.          +",code:" + code + ",debug:" + debugMode  
  131.          +"\n");  
  132.        switch(code) {  
  133.        //初始化成功,調(diào)用登錄  
  134.        caseUCGameSDKStatusCode.SUCCESS:  
  135.         //調(diào)用sdk登錄接口  
  136.         ucSdkLogin();  
  137.         break;  
  138.        //初始化失敗  
  139.        caseUCGameSDKStatusCode.INIT_FAIL:  
  140.         ucNetworkAndInitUCGameSDK();  
  141.        default:  
  142.         break;  
  143.        }  
  144.       }  
  145.      });  
  146.   } catch(UCCallbackListenerNullException e) {  
  147.    e.printStackTrace();  
  148.   } catch (Exception e) {  
  149.    e.printStackTrace();  
  150.   }  
  151.  }  
  152.  private void ucSdkLogin() {  
  153.   try {  
  154.    //登錄接口回調(diào)。從這里可以獲取登錄結(jié)果。  
  155.    UCCallbackListener<String>loginCallbackListener = newUCCallbackListener<String>() {  
  156.     @Override  
  157.     publicvoid callback(int code, String msg) {  
  158.      Messagemsg2 = new Message();  
  159.      Bundlebundle = new Bundle();  
  160.      bundle.putInt("what",1);  
  161.      msg2.setData(bundle);  
  162.      handler.sendMessage(msg2);  
  163.      Log.e("UCGameSDK","UCGameSdk登錄接口返回數(shù)據(jù):code=" + code  
  164.        +",msg=" + msg);  
  165.      //登錄成功。此時可以獲取sid。并使用sid進(jìn)行游戲的登錄邏輯。  
  166.      if(code == UCGameSDKStatusCode.SUCCESS) {  
  167.       System.out.println("UCGameSDKSUCCESS");  
  168.       payMoney();  
  169.      }  
  170.      //登錄失敗。應(yīng)該先執(zhí)行初始化成功后再進(jìn)行登錄調(diào)用。  
  171.      if(code == UCGameSDKStatusCode.NO_INIT) {  
  172.       System.out.println("UCGameSDKNO_INIT");  
  173.      }  
  174.      //登錄退出。該回調(diào)會在登錄界面退出時執(zhí)行。  
  175.      if(code == UCGameSDKStatusCode.LOGIN_EXIT) {  
  176.       System.out.println("UCGameSDKLOGIN_EXIT");  
  177.      }  
  178.     }  
  179.    };  
  180.    Message msg =new Message();  
  181.    Bundle bundle= new Bundle();  
  182.    bundle.putInt("what",0);  
  183.    msg.setData(bundle);  
  184.    handler.sendMessage(msg);  
  185.    UCGameSDK.defaultSDK().login(Fiap.this,loginCallbackListener);  
  186.   } catch(UCCallbackListenerNullException e) {  
  187.    e.printStackTrace();  
  188.   }  
  189.  }  
  190.  private void payMoney() {  
  191.     
  192.   PaymentInfo paymentInfo = newPaymentInfo();  
  193.   paymentInfo.setRoleId(""); //用戶角色id  
  194.   paymentInfo.setRoleName(""); //角色名字  
  195.   paymentInfo.setGrade(""); //角色等級  
  196.   paymentInfo.setCustomInfo("");// 游戲自定義信息  
  197.   // 服務(wù)器分區(qū)id  
  198.   paymentInfo.setServerId(0);  
  199.   // 通過設(shè)置參數(shù)會有以下效果:  
  200.   // 當(dāng)amount <=0.0時,正常支付  
  201.   // 當(dāng)amount >0.0時,使用定額支付  
  202.   paymentInfo.setAmount(catcapcoin);  
  203.   //是否允許連續(xù)充值,這個在SDK2.1.0后不起作用  
  204.   paymentInfo.setAllowContinuousPay(false);  
  205.   try {  
  206.    UCGameSDK.defaultSDK().pay(Fiap.this,paymentInfo,  
  207.      newUCCallbackListener<OrderInfo>(){  
  208.       @Override  
  209.       publicvoid callback(int statudcode, OrderInfo orderInfo) {  
  210.          
  211.        Stringtexts = "";  
  212.        switch(statudcode) {  
  213.        caseUCGameSDKStatusCode.SUCCESS:  
  214.         helper= new MyDBHelper(Fiap.this,  
  215.           "orderinfo.db",null1);  
  216.         db= helper.getWritableDatabase();  
  217.         ContentValuesvalues = new ContentValues();  
  218.         values.put("orderid",orderInfo.getOrderId());  
  219.         values.put("flag","paying");  
  220.         db.insert("orderinfo",null, values);  
  221.         helper.close();  
  222.         db.close();  
  223.         break;  
  224.        caseUCGameSDKStatusCode.NO_INIT:  
  225.         texts+= "UCGameSDK調(diào)用支付接口失敗,未初始化" + "\n";  
  226.         Log.e("UCGameSDK",texts);  
  227.         break;  
  228.        caseUCGameSDKStatusCode.PAY_USER_EXIT:  
  229.         texts+= "UCGameSDK支付界面退出" + "\n";  
  230.         Log.e("UCGameSDK",texts);  
  231.         break;  
  232.        default:  
  233.         break;  
  234.        }  
  235.       }  
  236.      });  
  237.   } catch (Exception e) {  
  238.    Log.e("UCGameSDK","UCGameSDK支付接口調(diào)用異常", e);  
  239.   }  
  240.  }  
  241.  class MyHandler extends Handler {  
  242.   @Override  
  243.   public voidhandleMessage(Message msg) {  
  244.    // TODOAuto-generated method stub  
  245.    super.handleMessage(msg);  
  246.    Bundle b =msg.getData();  
  247.    int what =b.getInt("what");  
  248.    switch (what){  
  249.    case 0:  
  250.     dialog= ProgressDialog.show(Fiap.this"""請稍后,正在加載");  
  251.     dialog.setCancelable(false);  
  252.     break;  
  253.    case 1:  
  254.     dialog.cancel();  
  255.     break;  
  256.    case 3:  
  257.     AlertDialog.Builderab = new AlertDialog.Builder(Fiap.this);  
  258.     ab.setMessage("網(wǎng)絡(luò)未連接,請設(shè)置網(wǎng)絡(luò)");  
  259.     ab.setPositiveButton("設(shè)置",  
  260.       newDialogInterface.OnClickListener() {  
  261.        @Override  
  262.        publicvoid onClick(DialogInterface dialog,  
  263.          intwhich) {  
  264.         Intentintent = new Intent(  
  265.           "android.settings.SETTINGS");  
  266.         startActivityForResult(intent,0);  
  267.        }  
  268.       });  
  269.     ab.setNegativeButton("退出",  
  270.       newDialogInterface.OnClickListener() {  
  271.        @Override  
  272.        publicvoid onClick(DialogInterface dialog,  
  273.          intwhich) {  
  274.        }  
  275.       });  
  276.     ab.show();  
  277.     break;  
  278.    }  
  279.   }  
  280.  }  
  281.  @Override  
  282.  protected void onDestroy() {  
  283.   // TODO Auto-generated methodstub  
  284.   super.onDestroy();  
  285.   this.stopService(intent);  
  286.  }  
  287. }  

MyService.java:查詢訂單是否支付成功并完成支付成功的后續(xù)邏輯

[java] view plain copy
  1. package com.example.blogforuc.uc;  
  2.   
  3. import java.security.MessageDigest;  
  4. import java.security.NoSuchAlgorithmException;  
  5. import org.apache.http.HttpResponse;  
  6. import org.apache.http.HttpStatus;  
  7. import org.apache.http.client.HttpClient;  
  8. import org.apache.http.client.methods.HttpGet;  
  9. import org.apache.http.impl.client.DefaultHttpClient;  
  10. import org.apache.http.util.EntityUtils;  
  11. import org.json.JSONObject;  
  12. import android.app.Service;  
  13. import android.content.ContentValues;  
  14. import android.content.Intent;  
  15. import android.content.ServiceConnection;  
  16. import android.database.Cursor;  
  17. import android.database.sqlite.SQLiteDatabase;  
  18. import android.os.IBinder;  
  19. import android.util.Log;  
  20.   
  21.    
  22.   
  23. public class MyService extends Service{  
  24.    
  25.  private String m_amount = "";  
  26.  private MyDBHelper helper;  
  27.  private SQLiteDatabase db;  
  28.  //是否終止線程的標(biāo)志,當(dāng)程序執(zhí)行OnDestory的時候需要置為false  
  29.  private boolean flag;  
  30.  //此處填寫查詢訂單是否支付成功的服務(wù)器地址  
  31.  private String url = "";  
  32.    
  33.  @Override  
  34.  public IBinder onBind(Intent intent) {  
  35.   // TODO Auto-generated method stub  
  36.     
  37.   return null;  
  38.  }  
  39.  @Override  
  40.  public void onCreate() {  
  41.   // TODO Auto-generated method stub  
  42.   super.onCreate();  
  43.  }  
  44.  @Override  
  45.  public void onStart(Intent intent, int startId) {  
  46.   // TODO Auto-generated method stub  
  47.   super.onStart(intent, startId);  
  48.   flag = true;  
  49.     
  50.   Thread th = new Thread(new myThread());  
  51.   th.start();  
  52.  }  
  53.    
  54.  class myThread implements Runnable{  
  55.   
  56.   @Override  
  57.   public void run() {  
  58.    // TODO Auto-generated method stub  
  59.    while(flag){  
  60.     helper = new MyDBHelper(getApplicationContext(), "orderinfo.db"null1);  
  61.     db = helper.getWritableDatabase();  
  62.     //查詢出未支付成功的訂單  
  63.     Cursor cursor = db.query("orderinfo"null"flag = ?"new String[]{"paying"}, nullnullnull);  
  64.     if (null!=cursor) {  
  65.      while(cursor.moveToNext()){  
  66.       String id_order = cursor.getString(1);  
  67.       if (null!=id_order) {  
  68.        if (isSuccess(id_order)) {  
  69.   
  70.         if (null!=m_amount) {  
  71.            
  72.          //這里填寫支付成功后的邏輯,并將數(shù)據(jù)庫里的對應(yīng)記錄置為payed  
  73.            
  74. //         Layer.pay(catcapcoin);  
  75.          ContentValues values = new ContentValues();  
  76.          values.put("flag""payed");  
  77.          db.update("orderinfo", values, "orderid = ?"new String[]{id_order});  
  78.         }  
  79.        }  
  80.       }  
  81.      }  
  82.     }  
  83.     helper.close();  
  84.     db.close();  
  85.     try {  
  86.      Thread.sleep(60000);  
  87.     } catch (InterruptedException e) {  
  88.      // TODO Auto-generated catch block  
  89.      e.printStackTrace();  
  90.     }  
  91.       
  92.    }  
  93.   }  
  94.  }  
  95.  //詢問服務(wù)器訂單是否支付成功  
  96.  private boolean isSuccess(String id_order){  
  97.   try {  
  98.    String str = id_order  
  99.      + "gGoXQmgHA42egR";//gGoXQmgHA42egR為secret可以自己設(shè)置也可不寫,主要是考慮數(shù)據(jù)安全性  
  100.    String md5_sign = MD5(str);  
  101.    HttpGet httpRequest = new HttpGet(url);  
  102.    String strResult = "";  
  103.    // HttpClient對象  
  104.    HttpClient httpClient = new DefaultHttpClient();  
  105.    // 獲得HttpResponse對象  
  106.    HttpResponse httpResponse = httpClient  
  107.      .execute(httpRequest);  
  108.    if (httpResponse  
  109.      .getStatusLine()  
  110.      .getStatusCode() == HttpStatus.SC_OK) {  
  111.     // 取得返回的數(shù)據(jù)  
  112.     strResult = EntityUtils  
  113.       .toString(httpResponse  
  114.         .getEntity());  
  115.    }  
  116.    //構(gòu)造解析JSON數(shù)據(jù)對象  
  117.    JSONObject jsonObj = new JSONObject(strResult);  
  118.    //此處都是我項目中用到的參數(shù)在這里做個實例,請自行配置  
  119.    String m_status = jsonObj.getString("status");  
  120.    String m_sign = jsonObj.getString("sign");  
  121.    String m_orderId = jsonObj.getString("orderId");  
  122.    String m_ucid = jsonObj.getString("ucid");  
  123.    m_amount = jsonObj.getString("amount");  
  124.      
  125.    Log.d("UCGameSDK","支付結(jié)果獲取"+ m_status);  
  126.      
  127.    String str_get = m_orderId+m_ucid+m_amount+m_status+"gGoXQmgHA42egR";  
  128.    String str_md5 = MD5(str_get);  
  129.    if (m_status.equals("success")&&m_sign.equals(str_md5)) {  
  130.     //支付成功  
  131.     return true;  
  132.    }else {  
  133.     //支付失敗  
  134.     return false;  
  135.    }  
  136.   } catch (Exception e) {  
  137.    // TODO: handle exception  
  138.    return false;  
  139.   }  
  140.  }  
  141.    
  142.  private String convertToHex(byte[] data) {  
  143.         StringBuffer buf = new StringBuffer();  
  144.         for (int i = 0; i < data.length; i++) {  
  145.             int halfbyte = (data[i] >>> 4) & 0x0F;  
  146.             int two_halfs = 0;  
  147.             do {  
  148.                 if ((0 <= halfbyte) && (halfbyte <= 9))  
  149.                     buf.append((char) ('0' + halfbyte));  
  150.                 else  
  151.                     buf.append((char) ('a' + (halfbyte - 10)));  
  152.                 halfbyte = data[i] & 0x0F;  
  153.             } while(two_halfs++ < 1);  
  154.         }  
  155.         return buf.toString();  
  156.     }  
  157.  //MD5校驗  
  158.     public String MD5(String text)  
  159.     throws NoSuchAlgorithmException, Exception  {  
  160.         MessageDigest md;  
  161.         md = MessageDigest.getInstance("MD5");  
  162.         byte[] md5hash = new byte[32];  
  163.         md.update(text.getBytes("iso-8859-1"), 0, text.length());  
  164.         md5hash = md.digest();  
  165.         return convertToHex(md5hash);  
  166.     }  
  167.    
  168.  @Override  
  169.  public void onDestroy() {  
  170.   // TODO Auto-generated method stub  
  171.   super.onDestroy();  
  172.   flag = false;  
  173.  }  
  174.    
  175.  @Override  
  176.  public void unbindService(ServiceConnection conn) {  
  177.   // TODO Auto-generated method stub  
  178.   super.unbindService(conn);  
  179.     
  180.  }  
  181. }  
MyDBHelper.java:數(shù)據(jù)庫字段搭建

[java] view plain copy
  1. package com.example.blogforuc.uc;  
  2.   
  3. import android.content.Context;  
  4. import android.database.sqlite.SQLiteDatabase;  
  5. import android.database.sqlite.SQLiteDatabase.CursorFactory;  
  6. import android.database.sqlite.SQLiteOpenHelper;  
  7.   
  8. public class MyDBHelper extends SQLiteOpenHelper{  
  9.    
  10.  private String sql_create = "create table orderinfo"+"(_id integer primary key autoincrement,orderid,flag)";  
  11.   
  12.  public MyDBHelper(Context context, String name, CursorFactory factory,  
  13.    int version) {  
  14.   super(context, name, factory, version);  
  15.   // TODO Auto-generated constructor stub  
  16.  }  
  17.    
  18.  @Override  
  19.  public void onCreate(SQLiteDatabase db) {  
  20.   // TODO Auto-generated method stub  
  21.   db.execSQL(sql_create);  
  22.  }  
  23.   
  24.  @Override  
  25.  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
  26.   // TODO Auto-generated method stub  
  27.     
  28.  }  
  29.   
  30. }  

下邊即支付界面:


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
android的Handler - 程序員之路 - 博客園
Android中handler的用法總結(jié)
activity、service、BroadcastReceive之間如何互相通訊,并取回相應(yīng)的結(jié)果
額外問題:onCreate中的savedInstanceState有何具體作用?具體例子?...
Writing Parcelable classes for Android
Android 屏幕旋轉(zhuǎn) 處理 AsyncTask 和 ProgressDialog 的最佳方案
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服