本站已经对小米主题真实地址进行解析了,https://lovestu.com/3.html,那么现在使用Android Studio开发一款解析APP
准备工作
okhttp是一款非常优秀的互联网访问类库,可以减少很多的代码编写,所以这儿使用okhttp方式进行数据访问,首先创建一个项目,添加OKhttp依赖
- compile 'com.squareup.okhttp:okhttp:2.4.0'
- compile 'com.squareup.okio:okio:1.7.0'
然后点击同步,进行下载依赖库
还有最重要的联网权限和写读写文件权限
- <uses-permission android:name="android.permission.INTERNET"/>
- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
有这三个权限才能正常的读写文件和联网
开始代码编写
创建一个mithemedown类,解析代码都在这儿编写了,创建一个获取网页源码的函数,本函数的功能是通过传入的主题唯一ID获取网页源码,调用的是OKhttp的同步访问方法,在外部使用的时候需要用到线程
- import com.squareup.okhttp.OkHttpClient;
- import com.squareup.okhttp.Request;
- import com.squareup.okhttp.Response;
- public class mithemedown {
- public static String getdownurl(String value) {
- final String url = "http://thm.market.xiaomi.com/thm/download/v2/" + value;
- String Strjson = "";
- try {
- OkHttpClient client = new OkHttpClient();//创建OkHttpClient对象
- Request request = new Request.Builder()
- .url(url)//请求接口。如果需要传参拼接到接口后面。
- .build();//创建Request 对象
- Response response = null;
- response = client.newCall(request).execute();//得到Response 对象
- if (response.isSuccessful()) {
- Strjson = response.body().string();
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return Strjson;
- }
- }
接着我们开始制作界面,界面很简单,两个编辑框,一个是正常的EditText,另一个是多行文本框,所以要给这个EditText添加android:inputType=”textMultiLine”属性,然后设置行数android:minLines=”8″ ,两个按钮,还需要一个进度条ProgressBar。点击解析按钮后会进行解析,把解析到的地址给显示到第二个编辑框,然后点击立即下载后调用下载系统下载功能进行下载主题
完整xml代码如下,基于ConstraintLayout布局创建
- <?xml version="1.0" encoding="utf-8"?>
- <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- tools:context="com.ghboke.mithemedown.MainActivity">