使用Volley

时间:2016-02-17 23:02:35

标签: java android download android-volley

对不起,我是Android的新手,正在开发销售数字下载的应用程序。我正在使用Volley Library将INAPP_PURCHASE_DATA和INAPP_DATA_SIGNATURE发布到网络服务器以验证订单并发出下载链接传递

http://domain.com/thankyou.php?purchaseData="+purchaseData+"&dataSignature="+dataSignature+"

如果订单已经过验证,将在页面内发布下载链接。文件名不是静态的,这意味着它是由系统自动生成的,所以我无法猜测每次从服务器端发出的名称。可以是file1.dat file2.dat file3.dat,每次都有一个名称,具体取决于我在webserver中定义的某些参数。

<html>
<head>
<title>Thank You</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
</head>

<body>
<a href="http://domain.com/file.dat" title="Order" download>Download File</a>   
</body>
</html>

现在我需要将下载文件链接发布到应用程序,以便客户可以下载该文件。

    StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
                            new Response.Listener<String>() {

                                @Override
                                public void onResponse(String response) {

//download file on through a new in-app page
Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).show();
                                }
                            },
                            new Response.ErrorListener() {
                                @Override
                                public void onErrorResponse(VolleyError error) {
                                    Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show();
                                }
                            })

我创建了一个activity_download.xml文件和一个新的下载类。

package com.example.app;

import java.util.List;

import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.example.app.R;

import android.app.ProgressDialog;
import android.content.Intent;

import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class Download extends Activity {

private String filename;

@Override
protected void onCreate (final Bundle savedInstanceState) {
    super.onCreate (savedInstanceState);
    setContentView(R.layout.activity_download);
    }
}

}

再次抱歉,我是Android的新手。你能指导我一个方法,让我有一个完整的Download.java类作为一个新页面,然后从MainActivity.java方面调用它响应和成功的结果。

非常感谢你!

1 个答案:

答案 0 :(得分:1)

将您的MainActivity代码插入此处。

         StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
                                new Response.Listener<String>() {

                                    @Override
                                    public void onResponse(String response) {
                           Intent intent = new Intent(MainActivity.this,Download.class);
                           startActivity(intent);

                                    }
                                },
                                new Response.ErrorListener() {
                                    @Override
                                    public void onErrorResponse(VolleyError error) {
                                        Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show();
                                    }
                                })

如果你想要一个响应,你想要祝酒。不要在Activity类中执行此操作,请在下载类中执行此操作,因为您将在获得响应后立即重定向到Download类

  public class Download extends Activity {

  private String filename;

@Override
protected void onCreate (final Bundle savedInstanceState) {
    super.onCreate (savedInstanceState);
    setContentView(R.layout.activity_download);
//download file on through a new in-app page
        Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).show();
    }
}

}