2014-11-14 216 views
0

在下面的代碼中,我試圖爲持久數據創建一個文件夾。如您所見,我創建了private final String folder = "//temp";和對象persistence。但問題是當我運行應用程序,我說Connection Failed,這條消息從client connection synchronous listener出來,當我連接沒有對象persistence,每件事情都很好。聲明MqttClientPersistence對象導致連接失敗

我錯誤地初始化folder變量或使用MqttClientPersistence persistence不正確嗎?

代碼

private final String folder = "//temp"; 
private final int keepAliveInterval = 30; 
private final String TAG = this.getClass().getSimpleName(); 

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

     final MqttClientPersistence persistence = new MqttDefaultFilePersistence(folder); 
     final MqttAndroidClient client2 = new MqttAndroidClient(getApplicationContext(), serverURI, clientID,persistence); 

回答

0

您是否啓用了文件系統的讀/寫權限的Android應用程序?

此外,路徑可能希望成爲特定於應用程序的目錄。你可以得到應用特定的目錄使用這樣的事情:

File outputDir = context.getCacheDir();

+0

不是它這個權限:<使用許可權的android:NAME = 「android.permission.WRITE_EXTERNAL_STORAGE」/>? – user2121 2014-11-14 14:56:36

+0

是的,您需要這樣做,但您仍然只能寫入與應用程序相關的存儲的特定區域。代碼行會給你一個File對象,指向一個可寫目錄 – hardillb 2014-11-14 15:01:01

+0

我聲明瞭這個「private final File outPutDirctory = this.getCacheDir();」並且我應該使用「outPutDirectory.createTempFile」請讓我知道 – user2121 2014-11-14 15:10:27