最近有网友私信我,问我如何在应用中使用积分功能获取一些额外收入,下面就以万普广告平台的积分模式介绍如何在应用中使用积分获取收入(万普的SDK中也有开发文档,但是初次接触积分模式,使用时可能会有些困难,所以我具体说说步骤)。

首先,说一下万普的广告,我前面的一篇博客内容有介绍过这个广告平台,总体来说,对个人开发者来说,这是一个非常好的广告平台,最近也一直在使用,推荐给大家,网址:http://www.waps.cn/?f=wind7rui

我的新浪微博(wind瑞):http://weibo.com/tianrui1990

好了,我们入正题啊!

步骤一,下载万普广告SDK,将 AppOffer_1.6.3.jar 导入想要嵌入广告的的工程中。

步骤二,修改AndroidManifest.xml文件

AndroidManifest.xml文件中加入如下权限,在<application>段外加入,代码如下:

 

  1. <uses-permission android:name="android.permission.INTERNET" />   
  2. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
  3. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />   
  4. <uses-permission android:name="android.permission.READ_PHONE_STATE" />   
  5. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />   
  6. <uses-permission android:name="android.permission.GET_TASKS" />  
  7. <!--以下两个权限为可选项,用于支持特殊广告形式-->  
  8. <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />  
  9. <uses-permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>  

紧接着,在<application>段内添加以下注册内容,代码如下: 

 

 

  1. <activity android:name="com.waps.OffersWebView" android:configChanges="keyboardHidden|orientation"/>  
  2. <!--以下属性为应用ID,从万普后台获取-->  
  3. <meta-data android:name="WAPS_ID" android:value="应用标识" />  
  4. <!--以下属性为分发渠道ID,编码表参见本文档末附表-->  
  5. <meta-data android:name="WAPS_PID" android:value="分发渠道标识" />  

 

注意:1.这里需要修改的是将

  1. <meta-data android:name="WAPS_ID" android:value="应用标识" />  

中的“应用标示”改成你在万普平台添加应用后自动生成的值(先去万普注册,然后添加应用),网址:http://www.waps.cn/?f=wind7rui

 

2.将

  1. <meta-data android:name="WAPS_PID" android:value="分发渠道标识" />  

中的“分发渠道标识”改成要上传到的应用市场的渠道标识,这些渠道标识是已经规定好的,在万普的开发SDK中有,注意查看,一定注意:上传到万普平台的版本填“WAPS”,分发给其他渠道的版本填写相应值(比如“Google”)后重新打包即可;不同的分发包应填写不同的渠道标识,才能在万普统计平台区分来自不同渠道的数据。。

步骤三,添加数据接口代码

注意这部分代码必须添加,它是应用获取数据的关键

该接口是所有其他接口能正常使用的基础,在每次应用启动时,必须调用该接口,才能保证获得准确的统计数据。


本例共有两个界面,第一个界面是主界面,一共两个按钮,点击“点击”按钮,若您的积分大于50,则跳到积分界面,否则不跳转,并且提示积分不足。如图所示:

 

主界面的Activity为MainActivity,MainActivity要实现UpdatePointsNotifier这个接口,并实现getUpdatePoints(String currencyName, intpointTotal)和getUpdatePointsFailed(String error)方法。getUpdatePoints(String currencyName, intpointTotal)方法用于成功获取积分的操作;getUpdatePointsFailed(String error)方法用于获取积分失败的操作。在MainActivity的onResume()方法中加入AppConnect.getInstance(this).getPoints(this)用于从服务器端获取用户点数/虚拟货币余额MainActivity的onDestroy()方法中加入AppConnect.getInstance(this).finalize()用于释放SDK占用的系统资源

MainActivity的代码如下:

 

  1. package com.android.jifen;  
  2.   
  3. import com.waps.AppConnect;  
  4. import com.waps.UpdatePointsNotifier;  
  5.   
  6. import android.app.Activity;  
  7. import android.content.Intent;  
  8. import android.os.Bundle;  
  9. import android.view.View;  
  10. import android.view.View.OnClickListener;  
  11. import android.widget.Button;  
  12. import android.widget.Toast;  
  13.   
  14. public class MainActivity extends Activity implements UpdatePointsNotifier{  
  15.     /** Called when the activity is first created. */  
  16.     private Button btn, exit;  
  17.     private String currentName;//保存当前积分的名称  
  18.     private int point;//保存当前您的积分数  
  19.       
  20.       
  21.     @Override  
  22.     public void onCreate(Bundle savedInstanceState) {  
  23.         super.onCreate(savedInstanceState);  
  24.         setContentView(R.layout.main);  
  25.   
  26.         // 方式①:通过AndroidManifest文件读取WAPS_ID和WAPS_PID  
  27.         AppConnect.getInstance(this); // 必须确保AndroidManifest文件内配置了WAPS_ID  
  28.         btn = (Button) findViewById(R.id.btn);  
  29.         exit = (Button) findViewById(R.id.exit);  
  30.         btn.setOnClickListener(new OnClickListener() {  
  31.   
  32.             @Override  
  33.             public void onClick(View v) {  
  34.                 // TODO Auto-generated method stub  
  35.                   
  36.                 if(point>=50){  
  37.                     Intent intent=new Intent();  
  38.                     intent.setClass(getApplicationContext(), JifenActivity.class);  
  39.                     startActivity(intent);                    
  40.                 }else{  
  41.                     Toast.makeText(getApplicationContext(), "您的积分不足", Toast.LENGTH_SHORT).show();  
  42.                 }  
  43.             }  
  44.         });  
  45.   
  46.         exit.setOnClickListener(new OnClickListener() {  
  47.   
  48.             @Override  
  49.             public void onClick(View v) {  
  50.                 // TODO Auto-generated method stub  
  51.                 finish();  
  52.                 System.exit(0);  
  53.             }  
  54.         });  
  55.           
  56.           
  57.     }  
  58.   
  59.     @Override  
  60.     protected void onDestroy() {  
  61.         // TODO Auto-generated method stub  
  62.         AppConnect.getInstance(this).finalize();  
  63.         super.onDestroy();  
  64.           
  65.     }  
  66.   
  67.       
  68.       
  69.       
  70.     @Override  
  71.     protected void onResume() {  
  72.         // TODO Auto-generated method stub  
  73.         // 从服务器端获取当前用户的虚拟货币.  
  74.         // 返回结果在回调函数getUpdatePoints(...)中处理  
  75.         AppConnect.getInstance(this).getPoints(this);  
  76.         super.onResume();  
  77.     }  
  78.   
  79.     @Override  
  80.     public void getUpdatePoints(String arg0, int arg1) {  
  81.         // TODO Auto-generated method stub  
  82.         this.currentName=arg0;  
  83.         this.point=arg1;  
  84.     }  
  85.   
  86.     @Override  
  87.     public void getUpdatePointsFailed(String arg0) {  
  88.         // TODO Auto-generated method stub  
  89.           
  90.     }  
  91. }  


注意:所有通过万普广告获得的虚拟货币将自动给予到用户。

 

同样方法使用花费(扣除)用户的虚拟货币接口,该接口为 AppConnect.getInstance(this).spendPoints(int amount, this)调用此方法的响应结果将通过当前Activity中实现的UpdatePointsNotifier接口返回;授予(增加)用户虚拟货币的接口为 AppConnect.getInstance(this).awardPoints(int amount, this)调用此方法的响应结果将通过当前Activity中实现的UpdatePointsNotifier接口返回,无需手动操作。

 

另附AndroidManifest.xml文件代码如下:

 

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.       package="com.android.jifen"  
  4.       android:versionCode="1"  
  5.       android:versionName="1.0">  
  6.     <uses-sdk android:minSdkVersion="7" />  
  7.     <uses-permission android:name="android.permission.INTERNET" />   
  8. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
  9. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />   
  10. <uses-permission android:name="android.permission.READ_PHONE_STATE" />   
  11. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />   
  12. <uses-permission android:name="android.permission.GET_TASKS" />  
  13. <!--以下两个权限为可选项,用于支持特殊广告形式-->  
  14. <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />  
  15. <uses-permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>  
  16.       
  17.     <application android:icon="@drawable/icon" android:label="@string/app_name">  
  18.         <activity android:name=".MainActivity"  
  19.                   android:label="@string/app_name">  
  20.             <intent-filter>  
  21.                 <action android:name="android.intent.action.MAIN" />  
  22.                 <category android:name="android.intent.category.LAUNCHER" />  
  23.             </intent-filter>  
  24.         </activity>  
  25.         <activity android:name="JifenActivity" />  
  26.         <activity android:name="com.waps.OffersWebView" android:configChanges="keyboardHidden|orientation"/>  
  27. <!--以下属性为应用ID,从万普后台获取-->  
  28. <meta-data android:name="WAPS_ID" android:value="" />  
  29. <!--以下属性为分发渠道ID,编码表参见本文档末附表-->  
  30. <meta-data android:name="WAPS_PID" android:value="WAPS" />  
  31.           
  32.     </application>  
  33. </manifest>  


到此一个简单的积分功能就实现了。

 

如果您有不明白的地方可以到我的新浪微博私信我,我的新浪微博:http://weibo.com/tianrui1990

万普广告平台的地址:http://www.waps.cn/?f=wind7rui


转自:http://blog.csdn.net/tianruirui/article/details/7369829