我试图写我的第一个每一个Android应用程序连接到我的树莓派和控制我的DSLR使用gphoto2库。我目前有一个非常粗糙的应用程序,有两个按钮,一个“连接”按钮和一个“捕获”按钮。
package com.example.myfirstapp;
import java.util.Properties;
import com.jcraft.jsch.*;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
public class MainActivity extends Activity {
public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
/** Called when the user clicks the send button */
public void sshConnect(View view) throws Exception {
Properties props = new Properties();
props.put("StrictHostKeyChecking", "no");
String host="123.456.7.89";
String user ="pi";
String pwd = "password";
int port = 22;
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
config.put("compression.s2c", "zlib,none");
config.put("compression.c2s", "zlib,none");
JSch jsch=new JSch();
Session session=jsch.getSession(user, host, port);
session.setConfig(config);
session.setPassword(pwd);
session.connect();
Context context = getApplicationContext();
CharSequence text = "Connected to Pi";
int duration = android.widget.Toast.LENGTH_SHORT;
android.widget.Toast toast = android.widget.Toast.makeText(context, text, duration);
toast.show();
}
public static void sendCapture(Session session) throws Exception {
Channel channel = session.openChannel("exec");
((ChannelExec) channel).setCommand("gphoto2 --capture-image");
channel.setInputStream(null);
((ChannelExec) channel).setErrStream(System.err);
channel.connect();
}
}
我可以连接到我的raspberry pi,但如果不使用以下命令从连接部分调用它,我无法将jsch会话传递到“捕获”按钮:
sendCapture(session);
我希望代码使用“连接”按钮通过ssh连接,然后能够使用“捕获”按钮尽可能多次地拍照。欢迎任何问题或一般建议。
谢谢
Button btn = (Button)findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
// TODO Auto-generated method stub
String ip,username,password;
ip="192.168.x.x";
username="guest";
password="guest";
//Write your code here
});
我不明白为什么谷歌开发者控制台上的“取消发布应用”按钮不可用(我可以看到,但不能按下)。 看起来该链接已被禁用。 有人知道为什么会这样吗?
我用苹果脚本做了一个叫做星期五的应用程序。当我告诉它“打开chrome”时,它会打开谷歌chrome,这是在脚本编辑器和脚本编辑器之外工作的。我也可以告诉它“打开一个新标签”,它会用击键打开一个新标签: 现在,上面的代码只在我在脚本编辑器上运行FRIDAY时有效,但在我将FRIDAY保存为应用程序并运行它时无效。 脚本编辑器和我的应用程序(星期五)具有可访问性,实际上星期五具有完整的磁盘可访问性。
在这个孩子的acitivy我有一个页面有一个旋转器和一个按钮。 首先,按钮是工作的,但当我点击旋转器,应用程序将崩溃。为了解决这个问题,我必须改变 至 我在活动中得到了这个方法,但他没有找到这个方法,因为我查看了contentView=LayoutInflater.from(getParent()).Inflate(r.layout.show_add_expresse_event,null);se
我正在开发Windows Phone8.1 RT应用程序。 场景: 对此有什么解决办法?
在断开连接按钮上,我尝试了: relivant按钮代码的当前部分 } } 编辑:猜是因为varible会话在winconnect中,而不是在按钮中,所以找不到它? Edit2:尝试下面的建议后,单击断开连接就会锁定 Edit5:如果调用session.disconnect确实有效,则选中此选项,但由于某种原因,它会导致我的程序锁定
每次单击我创建的按钮时,我的应用程序都会挂起。我尝试将这两个Java代码分开,它们工作得很好。谁能帮我查一下吗?我只想通过onClickListener调用第二个编码。 编辑:我再次检查,我很确定问题出在OnClickListener中,因为当我删除这些内容时,我可以按下按钮,它不会挂起,尽管它也不会转到其他页面。 对不起,我真的不知道如何张贴日志,这些是我在我的程序的日志中看到的东西。 这是Ma