2014-11-14 215 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