पर ब्लूटूथ कनेक्शन एंड्रॉइड (क्लाइंट) को पाइथन (सर्वर) में शुरू करना मैं अपने एंड्रॉइड फोन (सैमसंग गैलेक्सी एस 2) से एक "हैलोवर्ल्ड" (सिर्फ एक स्ट्रिंग) को अपने पीसी चलने वाले लिनक्स पर एक पायथन लिपि में भेजने की कोशिश कर रहा हूं। लेकिन मैं इसे काम करने के लिए नहीं मिल सकता है। एंड्रॉइड ऐप (क्लाइंट) और पायथन स्क्रिप्ट (सर्वर) के लिए कोड नीचे दिए गए हैं। ब्लूटूथ पीसी और फोन पर ठीक काम कर रहा है (उदाहरण के लिए मैं बीटी के माध्यम से फोन से तस्वीरें भेज सकता हूं)। जब मैं btSocket.connect() को कॉल करता हूं; इसके नीचे जावा कोड में बस कनेक्ट नहीं होगा। क्या मुझे कनेक्ट करने के लिए पोर्ट निर्दिष्ट करना है, क्योंकि मैंने सर्वर सॉकेट के लिए पोर्ट निर्दिष्ट किया है? किसी भी मदद की बहुत सराहना की जाएगी।पीसी
public class BlueTooth_testActivity extends Activity {
TextView header;
Button discoverDevicesBtn;
Button sendMsgBtn;
Button closeBtn;
EditText sendTxt;
BluetoothAdapter btAdapter;
BluetoothSocket btSocket;
private static String btAdress = "00:10:60:D1:95:CD";
private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
private OutputStream out;
public BluetoothDevice device;
private Boolean CONNECTED = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//init layout parameters
header = (TextView) findViewById(R.id.text1);
discoverDevicesBtn = (Button) findViewById(R.id.discBtn);
sendMsgBtn = (Button) findViewById(R.id.sendButton);
closeBtn = (Button) findViewById(R.id.closeButton);
sendTxt = (EditText) findViewById(R.id.editText1);
discoverDevicesBtn.setOnClickListener(discoverDeviceListener);
sendMsgBtn.setOnClickListener(sendMsgListener);
closeBtn.setOnClickListener(closeBtnListener);
//init bluetooth
btAdapter = BluetoothAdapter.getDefaultAdapter();
if (btAdapter.isEnabled()) {
Toast.makeText(this, "Bluetooth state:" + btAdapter.getState() + " Ok!", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(this, "Bluetooth state:" + btAdapter.getState() + " Not ok!", Toast.LENGTH_LONG).show();
}
}
private Button.OnClickListener discoverDeviceListener = new Button.OnClickListener() {@Override
public void onClick(View v) {
if (!CONNECTED) {
device = btAdapter.getRemoteDevice(btAdress);
header.append("\nRemote device: " + device.getName());
try {
btSocket = device.createRfcommSocketToServiceRecord(MY_UUID);
} catch (Exception e) {
}
header.append("\n createRfcommsockettoservice! ");
btAdapter.cancelDiscovery();
try {
btSocket.connect();
CONNECTED = true;
header.append("\n btSocket Created!");
} catch (IOException e) {
Toast.makeText(getApplicationContext(), "Could not connect to socket", Toast.LENGTH_LONG);
try {
btSocket.close();
} catch (Exception b) {}
}
}
}
};
private Button.OnClickListener sendMsgListener = new Button.OnClickListener() {@Override
public void onClick(View v) {
if (CONNECTED) {
try {
out = btSocket.getOutputStream();
String msg = sendTxt.getText().toString();
byte[] msgBffr = msg.getBytes();
out.write(msgBffr);
Toast.makeText(getApplicationContext(), "Message sent", Toast.LENGTH_LONG).show();
} catch (Exception a) {
Toast.makeText(getApplicationContext(), "Could not send msg", Toast.LENGTH_LONG).show();
}
} else {
Toast.makeText(getApplicationContext(), "cant send msg, not connected", Toast.LENGTH_LONG).show();
}
}
};
}
import bluetooth
name="bt_server"
target_name="siggen"
uuid="00001101-0000-1000-8000-00805F9B34FB"
def runServer():
serverSocket=bluetooth.BluetoothSocket(bluetooth.RFCOMM)
port=bluetooth.PORT_ANY
serverSocket.bind(("",port))
print "Listening for connections on port: ", port
serverSocket.listen(1)
port=serverSocket.getsockname()[1]
inputSocket, address=serverSocket.accept()
print "Got connection with" , address
data=inputSocket.recv("1024")
print "received [%s] \n " % data
inputSocket.close()
serverSocket.close()
runServer()
(मैं इस समस्या कनेक्शन सेटअप में कहीं है के रूप में जावा कोड के बाकी शामिल करने के लिए परेशान havnt)।
क्या वायरसहार्क कैप्चर यहां सहायक होगा? – James
क्या आपने इसे संकुचित कर दिया है कि समस्या अजगर या जावा में है या नहीं? –
आपको हमेशा अपने क्लाइंट/सर्वर का उपयोग सिद्ध सॉफ्टवेयर के एक टुकड़े के साथ संयोजन करने का प्रयास करके क्लाइंट/सर्वर कार्यान्वयन का परीक्षण करना चाहिए। देखें कि क्या आप ऐप स्टोर में उच्च रेटिंग वाले ब्लूटूथ ऐप प्राप्त कर सकते हैं और अपनी पायथन स्क्रिप्ट से कनेक्ट करने का प्रयास कर सकते हैं।फिर, देखें कि क्या आप एक गुणवत्ता पायथन सर्वर प्राप्त कर सकते हैं जो आपके एंड्रॉइड ऐप से कनेक्ट होगा। * फिर * देखें कि आपकी स्क्रिप्ट आपके एंड्रॉइड ऐप से कनेक्ट हो सकती है या नहीं। –