小白编程之使用友盟自动更新

在开发APP过程当中,为实现APP更新时及时提示用户更新,因此使用友盟更新   http://www.umeng.com/component_update  在实际使用过程中,发现非常方便,并且个人手机上发现有多款APP 使用的是相类似的更新提示Dialog,目测应该是属于友盟更新,为方便以后使用方便,特此将使用过程小白化记录。

-sdk下载
友盟自动更新  http://dev.umeng.com/auto-update/android-doc/introduction  

1.将下载的ZIP解压,将其中的 libs文件夹合并到本地工程 libs子目录下。
Eclipse用户右键工程根目录,选择 Properties -> Java Build Path -> Libraries,然后点击 Add External JARs... 选择指向jar的路径,点击 OK,即导入成功。
android studio用户直接直接复制到 Libs 然后右键选择 Add As Libarry 即导入成功。

2.将SDK提供的 res文件夹拷入工程目录下, 和工程本身 res目录合并。请不要随便删除其中的文件。

3.配置AndroidManifest.xml

打开 AndroidManifest.xml,添加SDK需要的权限到 <manifest>标签下:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</pre><div><span style="font-family:Courier New;">android.permission.WRITE_EXTERNAL_STORAGE</span> 权限允许将下载的apk保存到sd卡中。<code>android.permission.ACCESS_NETWORK_STATE</code> 权限允许检查网络状态,从而根据不同网络环境决定何种下载策略,务必添加该权限。</div><div></div><div>4.添加APPKEY和渠道到<code><application></code>标签下:</div><div></div><pre class="html" name="code"><meta-data android:value="YOUR APP KEY" android:name="UMENG_APPKEY"/>
<meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>

YOUR APP KEY 即开发的APP上传友盟后,友盟提供的KEY 
UMENG_CHANNEL:用来标注应用推广渠道,不同渠道可以上传不同更新包,您可以使用20位以内的英文和数字为渠道定名,替换value中的"Channel ID"。如果不改动,将代表默认渠道。 (特别提示:如果需要使用友盟自动更新多渠道更新,必须先集成友盟统计SDK

5.添加Service和Activity到 <application>标签下:

<service
    android:name="com.umeng.update.net.DownloadingService"
    android:process=":DownloadingService" >
</service>
<activity 
    android:name="com.umeng.update.UpdateDialogActivity"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" >
</activity>

包名可能会出现不一致的情况,在配置时检查一下
-----------------------------------------------------------------------------------------------------------------------
至此,自动更新的配置已经完成,为了使程序在启动是即可以自检是否有更新可用,需要在 应用 程序入口 Activity里的 OnCreate() 方法中调用

public void onCreate(Bundle  savedInstanceState) {
    super.onCreate(savedInstanceState);
    UmengUpdateAgent.update(this);


完成以上配置后,APP在启动后,当程序的VersionCode 低于友盟后台的VersionCode时,会在APP启动后提示用户更新,Android studio 用户的VersionCode 在Builde.Gradle 中配置





-----------------------------------------------------------------------------------------------------------------
以下为部分自定义功能,





 上图中,自定义了Button的样式,并且给TextView 添加了点击时的效果,因为在APP使用过程中,如果用户在APP 启动时没有选择升级,但是突然想要手动升级了,就需要调用一下的方法。

 tx= (TextView) findViewById(R.id.tx);
        tx.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                UmengUpdateAgent.setUpdateAutoPopup(false);
                UmengUpdateAgent.setUpdateListener(new UmengUpdateListener() {
                    @Override

                    public void onUpdateReturned(int updateStatus, UpdateResponse updateInfo) {
                        switch (updateStatus) {
                            case UpdateStatus.Yes: // has update
                                UmengUpdateAgent.showUpdateDialog(getApplicationContext(), updateInfo);
                                break;
                            case UpdateStatus.No: // has no update
                                Toast.makeText(getApplicationContext(), "当前已是最新版本!", Toast.LENGTH_SHORT).show();
                                break;
                            case UpdateStatus.NoneWifi: // none wifi
                                Toast.makeText(getApplicationContext(), "没有wifi连接, 只在wifi下更新", Toast.LENGTH_SHORT).show();
                                break;
                            case UpdateStatus.Timeout: // time out
                                Toast.makeText(getApplicationContext(), "超时", Toast.LENGTH_SHORT).show();
                                break;
                        }
                    }

                });UmengUpdateAgent.forceUpdate(getApplicationContext());

            }
        });

其中,可以修改Toast的参数,来修改提示用户信息。
------------------------------------------------------------------------------------------------------------------
接下来简单说一下Dialog的自定义方法



在layout文件夹下的umeng_updata_dialog.xm就是提示框的XML文件,
 <LinearLayout
        android:id="@+id/umeng_update_frame"
        android:layout_width="280dp"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:background="@drawable/umeng_update_dialog_bg"   //这一行为Dialog边框样式设置
        android:paddingBottom="8dp"
        android:orientation="vertical" >

点击后,打开drawable/emeng_updata_dialog_bg.xml文件
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <corners android:radius="8dp" />
    <solid  android:color="#FFFFFF"/>
</shape>
  
    对
<corners android:radius="8dp" />
参数修改,可以改变边角半径,参数为0则表示直角
  <!--  填充的颜色  -->
   < solid  android:color ="#FFFFFF"   />
  <!--  设置矩形的四个角为弧形  -->
   <!--  android:radius 弧形的半径  -->
     < corners  android:radius ="8dip"   />
android:radius为角的弧度,值越大角越圆。我们还可以把四个角设定成不同的角度,方法为:
 
  < corners
        android:bottomLeftRadius ="20dp"
          android:bottomRightRadius ="0dp"
          android:topLeftRadius ="1dp"
          android:topRightRadius ="20dp"   />



至此,基本上关于友盟检查更新就已经配置完成,大致常用的参数简单修改的都已经完成了,关于APP更新的更多设置可以参考友盟官方文档
  点击打开链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值