Saeed.MD
چهارشنبه 19 شهریور 1393, 00:09 صبح
سلام
همانطور که از عنوان پیداس میخوام یه اپ داشته باشم که یک دکمه داره و وقتی اون دکمه رو فشار میدیم به وسیله مورد نظرم کانکت بشه و پیام مورد نظرم مثلا "ok" رو بفرسته و دیسکانکت بشه
الان من از این کد استفاده میکنم و به خوبی کار میکنه اما چند تا سوال داشتم که پایین میپرسم
public class Main extends Activity {
private static Button bSend;
private static String currentMAC = "yy:xx:zz:xx:zz:xx";
private static BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter();
private static BluetoothSocket btSocket = null;
private static OutputStream btOutputStream =null;
private static Context context=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bSend = (Button) findViewById(R.id.bSend);
bSend.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String content = "ok";
connectBT();
try {
btOutputStream.write(content.getBytes());
cancelBT();
} catch (Exception ex) {
Toast.makeText(context, "Error", Toast.LENGTH_SHORT).show();
cancelBT();
}
}
});
}
void connectBT(){
if (btAdapter.isEnabled()){
try {
BluetoothDevice device = btAdapter.getRemoteDevice(currentMAC);
Method m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class});
btSocket = (BluetoothSocket) m.invoke(device, 1);
btAdapter.cancelDiscovery();
btSocket.connect();
btOutputStream = btSocket.getOutputStream();
} catch (Exception e1){
Toast.makeText(context, "Can’t connect to device", Toast.LENGTH_LONG).show();
cancelBT();
return;
}}
}
private void cancelBT() {
if (btOutputStream!=null) {
try {
btOutputStream.close();
} catch (Exception ex){};
btOutputStream=null;
}
if (btSocket!=null){
try {
btSocket.close();
} catch (Exception ex){};
btSocket=null;
}
}
}
سوالام:
یک: وفتی بلوتوث گوشی خاموشه و من اون دکمه رو میزنم برنامه کرش میکنه و خارج میشه . چیکار کنم که وقتی بلوتوث خاموشه از برنامه بیرونن نیاد و فقط یه تُست بیاد و یه چیزی بگه ؟؟؟
دو: آیا راه ساده تر با کد کمتر برای اتصال به وسلیه بولوتوثی هست ؟؟؟
سه: وقتی بلوتوث گوشی روشنه اما مثلا دستگاه دوم خیلی دوره یا خاموشه با زدن دکمه بعد 3-4 ثانیه اپ کرش میکنه و خارج میشه
سه1 : میشه اون مقدار زمان رو کمتر کرد ؟
سه2: چطوری از کرش کردن جلوگیری کنم مثل سوال یک
نکته: این کد ها رو من ایجاد نکردم واز یک پروژه opensource نگاه کردم و بعضی خط هاشو کپی کردم
همانطور که از عنوان پیداس میخوام یه اپ داشته باشم که یک دکمه داره و وقتی اون دکمه رو فشار میدیم به وسیله مورد نظرم کانکت بشه و پیام مورد نظرم مثلا "ok" رو بفرسته و دیسکانکت بشه
الان من از این کد استفاده میکنم و به خوبی کار میکنه اما چند تا سوال داشتم که پایین میپرسم
public class Main extends Activity {
private static Button bSend;
private static String currentMAC = "yy:xx:zz:xx:zz:xx";
private static BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter();
private static BluetoothSocket btSocket = null;
private static OutputStream btOutputStream =null;
private static Context context=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bSend = (Button) findViewById(R.id.bSend);
bSend.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String content = "ok";
connectBT();
try {
btOutputStream.write(content.getBytes());
cancelBT();
} catch (Exception ex) {
Toast.makeText(context, "Error", Toast.LENGTH_SHORT).show();
cancelBT();
}
}
});
}
void connectBT(){
if (btAdapter.isEnabled()){
try {
BluetoothDevice device = btAdapter.getRemoteDevice(currentMAC);
Method m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class});
btSocket = (BluetoothSocket) m.invoke(device, 1);
btAdapter.cancelDiscovery();
btSocket.connect();
btOutputStream = btSocket.getOutputStream();
} catch (Exception e1){
Toast.makeText(context, "Can’t connect to device", Toast.LENGTH_LONG).show();
cancelBT();
return;
}}
}
private void cancelBT() {
if (btOutputStream!=null) {
try {
btOutputStream.close();
} catch (Exception ex){};
btOutputStream=null;
}
if (btSocket!=null){
try {
btSocket.close();
} catch (Exception ex){};
btSocket=null;
}
}
}
سوالام:
یک: وفتی بلوتوث گوشی خاموشه و من اون دکمه رو میزنم برنامه کرش میکنه و خارج میشه . چیکار کنم که وقتی بلوتوث خاموشه از برنامه بیرونن نیاد و فقط یه تُست بیاد و یه چیزی بگه ؟؟؟
دو: آیا راه ساده تر با کد کمتر برای اتصال به وسلیه بولوتوثی هست ؟؟؟
سه: وقتی بلوتوث گوشی روشنه اما مثلا دستگاه دوم خیلی دوره یا خاموشه با زدن دکمه بعد 3-4 ثانیه اپ کرش میکنه و خارج میشه
سه1 : میشه اون مقدار زمان رو کمتر کرد ؟
سه2: چطوری از کرش کردن جلوگیری کنم مثل سوال یک
نکته: این کد ها رو من ایجاد نکردم واز یک پروژه opensource نگاه کردم و بعضی خط هاشو کپی کردم