进入我的产品页面后,可以看到申请加入应用联盟的入口,点击后,会弹出窗口,请填写相应的内容,填写完成后,点击“立刻申请”按钮,即会发送申请,会有相应的管理员来联系您。申请通过或者被拒绝,之前填写的邮箱中,都会收到相应的邮件。
申请通过后,在我的产品页面就会看到“应用联盟”字样,点击后会进入应用联盟页面。
点击后,会进入如下页面,若您的app已经集成完毕,则可点击下一步,若尚未集成,则参考第二章进行集成。
点击“下一步”按钮后,进入功能选取页面。若想加入友盟的交换网络进行换量,点击“加入交换网络”,输入相应的内容后,管理员会对该应用进行审核,审核通过后即可开始换量;若想自己接广告进行管理,或推广自己想推的app,则点击使用广告管理,填写相应内容即可。
a) 添加appkey。在<application>中添加
<meta-data android:value="xxxxxxxx" android:name="UMENG_APPKEY"></meta-data>
其中xxxxxxxx是您在友盟网站上为应用程序注册之后获得的app key,请将真实的app key替换掉xxxxxxxx。b) 添加访问权限 (权限说明)
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
c) 声明SDK用到的下载服务
<service android:exported="true"
<android:name="com.exchange.Public.DownloadingService"
<android:process=":DownloadingService">
</service>
下面是一个完整的AndroidManifest.xml文件的例子。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.umeng" android:versionCode="1" android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".UmengExchangeDemo" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:exported="true"
android:name="com.exchange.Public.DownloadingService"
android:process=":DownloadingService">
</service>
<meta-data android:value="xxxxxxxxxxxxxxxxxxxxxxxxx"
android:name="UMENG_APPKEY"></meta-data>
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>
在需要添加友盟应用联盟推广的Activity的onCreate()函数中添加:
public class SmallHandlerListBottom extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.small_handler_activity);
ViewGroup rootLayout = (ViewGroup) findViewById(R.id.rootId);
ExchangeViewManager exchangeViewManager = new ExchangeViewManager();
exchangeViewManager.addView(this, rootLayout,
ExchangeConstants.type_small_handler_list_bottom);
}
}
其中rootLayout 为对应Activity的布局文件的根元素。下面的例子是对应于上面的SmallHandlerListBottom Activity的布局文件(small_handler_activity.xml)。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/rootId"
android:background="@drawable/device" >
</LinearLayout>
下面列出了友盟应用联盟SDK所支持的所有样式,ExchangeViewManager.addView(Context context, ViewGroup rootLayout, int type)函数的第三个参数决定了不同的样式。
ExchangeViewManager exchangeViewManager = new ExchangeViewManager();
exchangeViewManager.addView(this, rootLayout, ExchangeConstants.type_small_handler_list_bottom);
ExchangeViewManager exchangeViewManager = new ExchangeViewManager();
exchangeViewManager.addView(this, rootLayout,ExchangeConstants.type_small_handler_list_top);
ExchangeViewManager exchangeViewManager = new ExchangeViewManager();
exchangeViewManager.addView(this, rootLayout, ExchangeConstants.type_grid_view_bottom);
ExchangeViewManager exchangeViewManager = new ExchangeViewManager();
exchangeViewManager.addView(this, rootLayout,ExchangeConstants.type_grid_view _top);
new ExchangeViewManager().addView(this, null, ExchangeConstants.type_list_curtain);
ViewGroup fatherLayout1 = (ViewGroup) this.findViewById(R.id.tab1);
ListView listView1 = (ListView) this.findViewById(R.id.list1);
new ExchangeViewManager().addView(this, fatherLayout1, listView1);
对应的布局文件如下:
<RelativeLayout android:layout_width="-1dp"
android:layout_height="-2dp">
<RelativeLayout android:layout_width="-1dp"
android:layout_height="-2dp" android:id="@+id/tab1"
android:layout_marginBottom="5dp" android:layout_marginLeft="5dp"
android:layout_marginRight="5dp">
<ListView android:id="@+id/list1" android:cacheColorHint="#00000000"
android:layout_width="fill_parent" android:dividerHeight="1px"
android:divider="#dedfde" android:listSelector="#00000000"
android:layout_height="-2dp">
</ListView>
</RelativeLayout>
</RelativeLayout>
ExchangeViewManager exchangeViewManager = new ExchangeViewManager();
exchangeViewManager.addView(this, rootLayout, ExchangeConstants.type_standalone_handler);
-keep public class [package name].R$*{
public static final int exchange_*;
}
这里[package name]是你的应用程序的包名(替换的时候请删除方括号)。例如,如果程序的package name叫com.demo, 那么就改为:
-keep public class com.demo.R$*{
public static final int exchange_*;
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.splash_activity);
ExchangeConstants.ONLY_CHINESE=false;
ViewGroup fatherLayout1 = (ViewGroup) this.findViewById(R.id.tab1);
ListView listView1 = (ListView) this.findViewById(R.id.list1);
new ExchangeViewManager().addView(this, fatherLayout1, listView1);
}
可以通过设置下面的变量改变SDK默认的界面或者行为。
ExchangeDataService exchangeDataService1 = new ExchangeDataService();
exchangeDataService1.setKeywords("app"); // 设置分组的关键词。
exchangeDataService1.autofill=0; //自主广告数量小的情况下,不要自动填充来自交往网络的广告。
new ExchangeViewManager(exchangeDataService1).addView(this,fatherLayout1, listView1);
| android.permission.INTERNET | 向友盟的服务器请求应用推广数据。 |
| android.permission.ACCESS_NETWORK_STATE | 检测网络状态。 |
| android.permission.READ_PHONE_STATE | 这个权限仅为了获取用户手机的IMEI,利用哈希生成一个UUID,作为唯一的标识用户。 (如果您的应用会运行在无法读取IMEI的平板上,我们会将mac地址作为用户的唯一标识,请添加权限:android.permission.ACCESS_WIFI_STATE) |
| android.permission.WRITE_EXTERNAL_STORAGE | 缓存下载的应用到SD卡 |
如果您在集成友盟应用联盟SDK的过程中遇到任何问题, 欢迎联系我们的技术工程师。 如果您有好的建议,也欢迎和我们交流。
| 徐仙明 | 陈彧堃 |
| QQ: 1908425381 | QQ: 309576849 |
| Email: xuxianming@umeng.com | Email: chenyukun@umeng.com |