Ho ricevuto la risposta grazie a Raghunandan per il suggerimento.
Qui ho bisogno di chiamare in più per ottenere le informazioni di intestazione del file di download. Nella sezione dell'intestazione ho ottenuto il nome del file.
Inoltre ho trovato questo post Filename from URL not containing filename suffix attraverso il quale ho ottenuto maggiori dettagli riguardo i dettagli dell'intestazione che possiamo ottenere al momento della richiesta.
Come possiamo usare questo URLUtil.guessFileName(url, null, null)
ma questo sarà dato il nome di file di mezzi chiedendo mio caso ho URL come questo
misc/dnload.php?t1=MzQ0MDA=&t2=MTY5NTUz&t3=MTY5NTUzMTMwMjEyMDNfcGhhcm1hY3kga2V5IGluZm8ucG5n&t4=MTMwMjEyMDM=
così dal link qui sopra questo estrarrà il dnload.php come nome del file non il nome del file originale che lo abbiamo scaricato appena creato il link per il download di quel file.
ecco il codice utilizzando questo possiamo ottenere il nome del file è solo una chiamata in più per ottenere le informazioni, ma in realtà noi scarichiamo, per il download ho usato android inbuilt api per DownloadManager per scaricare il file.
Content-Disposition this is the attribute in header section through which we can get the file name as in attachment form.
Sarà tornerà informazioni come questo senso Content-Disposition: attachment; filename="fname.ext"
così ora solo bisogno di estrarre il nome del file
class GetFileInfo extends AsyncTask<String, Integer, String>
{
protected String doInBackground(String... urls)
{
URL url;
String filename = null;
try {
url = new URL(urls[0]);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.connect();
conn.setInstanceFollowRedirects(false);
String depo = conn.getHeaderField("Content-Disposition");
String depoSplit[] = depo.split("filename=");
filename = depoSplit[1].replace("filename=", "").replace("\"", "").trim();
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e) {
}
return filename;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute();
// use result as file name
}
}
fare si effettua una richiesta HTTP per scaricare il file. In tal caso, è possibile ottenere il nome file dal contenuto dell'intestazione. – Raghunandan