2013-11-05 13 views
1

我的代碼中的下面一行將* .apk文件傳輸到我的軟件包目錄。如何使用Wifi Direct將兩個Android手機之間的文件傳輸到Android手機的下載目錄,而不是包目錄

final File f = new File(Environment.getExternalStorageDirectory() + "/" 
         + context.getPackageName() + "/wifip2pshared-" + System.currentTimeMillis() 
         + ".apk"); 

如何對其進行修改,使其每次被下載/傳輸到android手機的下載目錄。我相信Downloads目錄是每個Android手機的默認目錄。

目前,它被轉移到包目錄,例如說「com.example.android.wifidirect」

編輯我做了基於Manish的解決方案:

@Override 
     protected String doInBackground(Void... params) { 
      try { 
       ServerSocket serverSocket = new ServerSocket(8988); 
       Log.d(WiFiDirectActivity.TAG, "Server: Socket opened"); 
       Socket client = serverSocket.accept(); 
       Log.d(WiFiDirectActivity.TAG, "Server: connection done"); 
       String extStorageDirectory = Environment 
         .getExternalStorageDirectory().toString(); 
       File folder = new File(extStorageDirectory, "Download"); 


File file = new File(folder,"wifip2pshared-" + System.currentTimeMillis()+ ".apk"); 
       try { 
        file.createNewFile(); 
       } catch (IOException e1) { 
        e1.printStackTrace(); 
       } 


       Log.d(WiFiDirectActivity.TAG, "server: copying files " + file.toString()); 
       InputStream inputstream = client.getInputStream(); 
       copyFile(inputstream, new FileOutputStream(file)); 
       serverSocket.close(); 
       return file.getAbsolutePath(); 
      } catch (IOException e) { 
       Log.e(WiFiDirectActivity.TAG, e.getMessage()); 
       return null; 
      } 
     } 
+0

通過您的android-sdk/samples/android-17或18/WiFiDirectDemo –

+0

我附加的代碼是17/WifiDirectDemo。其中的文件被轉移到包目錄。我的問題是「如何將文件傳輸到Android手機中的特定目錄。例如在下載目錄」? – SAMBA

+0

請檢查我的答案,並與你一起改變。它會肯定工作,請不要忘記給我加票。 –

回答

1

請試試這個代碼 -

File file = new File(Environment.getExternalStorageDirectory() 
       .getAbsolutePath() + "/Download/wifip2pshared-" + System.currentTimeMillis() 
       + ".apk"); 

編輯:你也可以試試這個代碼,希望它有助於每次創建不同的名稱。

String extStorageDirectory = Environment 
        .getExternalStorageDirectory().toString(); 
      File folder = new File(extStorageDirectory, "Download"); 
      File file = new File(folder, wifip2pshared-" + System.currentTimeMillis()+ ".apk"); 
      try { 
       file.createNewFile(); 
      } catch (IOException e1) { 
       e1.printStackTrace(); 
      } 

編輯您的具體需求..

protected String doInBackground(Void... params) { 
     try { 
      ServerSocket serverSocket = new ServerSocket(8988); 
      Log.d(WiFiDirectActivity.TAG, "Server: Socket opened"); 
      Socket client = serverSocket.accept(); 
      Log.d(WiFiDirectActivity.TAG, "Server: connection done"); 
      String extStorageDirectory = Environment.getExternalStorageDirectory().toString(); 
      File folder = new File(extStorageDirectory, "Download"); 
      File file = new File(folder,"wifixyz-" + System.currentTimeMillis()+".apk"); 
      try { 
       file.createNewFile(); 
      } catch (IOException e1) { 
       e1.printStackTrace(); 
      } 

      Log.d(WiFiDirectActivity.TAG, "server: copying files " + file.toString()); 
      InputStream inputstream = client.getInputStream(); 
      copyFile(inputstream, new FileOutputStream(file)); 
      serverSocket.close(); 
      return file.getAbsolutePath(); 
     } catch (IOException e) { 
      Log.e(WiFiDirectActivity.TAG, e.getMessage()); 
      return null; 
     } 
    } 

謝謝!

+0

謝謝。但是如何在手機內存中下載文件。上面的代碼「Environment.getExternalStorageDirectory().getAbsolutePath()」是我相信的SD卡。糾正我,如果我錯了。 – SAMBA

+0

否否將保存手機內存中的文件下載文件夾。改變你的代碼並測試它.. –

+0

雅吧。知道了謝謝。那麼如何處理它的SD卡?除了我有Astro文件管理器。在那裏我能夠看到我使用wifi直接傳輸的文件。但是,如果我通過使用USB電纜將其連接到PC來打開手機內存,則無法在從PC查看時在手機中看到該.apk文件。 – SAMBA

相關問題