بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
پروژه چت توسط بلوتوث به جای Wifi Chat
من پروژه wifi chat استاد رو تا آخر رفتم ولی هر کاری کردم نتونستم روی دیوایس واقعی تست بگیرم. و تو پروژه هم مجوز اینترنت رو فعال کردم تا برنامه رو بشه تو دیوایس واقعی بالا آورد، ولی برنامه همچنان بدون عملکرد درست! در ضمن آی پی گوشی رو خودم وارد کردم. با کلی روش که میدونستم امتحانش کردم.
میخواستم بدونم چطور میشه به جای آی پی از بلوتوث استفاده کرد. لطفا دقیق توضیح بدید. ممنون
یا اگه میشه با آی پی راش انداخت چطور میشه. باز هم ممنون
package com.uncocoder.app.wifi_chat;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class WifiChatActivity extends Activity {
private Handler handler = new Handler();
private TextView text;
private EditText input;
private Button btnSend;
private Socket socket;
private DataOutputStream outputStream;
private BufferedReader inputStream;
private boolean searchNetwork() {
log("Connecting...");
String range = "192.168.56.";
for (int i = 1; i <= 255; i++) {
String ip = range + i;
try {
//log("Try IP: " + ip);
socket = new Socket();
socket.connect(new InetSocketAddress(ip, 9000), 10);
log("Connected!");
return true;
}
catch (Exception e) {}
}
return false;
}
private void runChatServer() {
try {
log("Waiting for client...");
ServerSocket serverSocket = new ServerSocket(9000);
socket = serverSocket.accept();
log("A new client Connected!");
}
catch (IOException e) {}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
text = (TextView) findViewById(R.id.text);
input = (EditText) findViewById(R.id.input);
btnSend = (Button) findViewById(R.id.btnSend);
//server
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
if ( !searchNetwork()) {
runChatServer();
}
try {
outputStream = new DataOutputStream(socket.getOutputStream());
inputStream = new BufferedReader(new InputStreamReader(socket.getInputStream()));
}
catch (IOException e1) {
log("Error: Connection is not stable, exit");
shutdown();
}
while (true) {
try {
String message = inputStream.readLine();
if (message != null) {
log(message);
}
}
catch (IOException e) {}
}
}
});
btnSend.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (outputStream == null) {
return;
}
try {
String message = input.getText().toString() + "\n";
outputStream.write(message.getBytes());
}
catch (IOException e) {
e.printStackTrace();
}
}
});
thread.start();
}
private void log(final String message) {
long timestamp = System.currentTimeMillis();
final long time = timestamp % 1000000;
handler.post(new Runnable() {
@Override
public void run() {
text.setText(text.getText() + "\n @" + time + ": " + message);
}
});
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
shutdown();
return true;
}
return super.onKeyDown(keyCode, event);
}
private void shutdown() {
try {
if (socket != null) {
socket.close();
}
}
catch (IOException e) {
e.printStackTrace();
}
System.exit(0);
}
}
0
0
تو تابع searchNetwork به جای ".String range = "192.168.56 بذار ".String range = "192.168.1 (10 سال پیش)
0
0
اگه اینکار رو انجام بدم تو دیوایس واقعی درست میشه، یعنی با دوتا گوشی میشه چت کرد!؟ (10 سال پیش)
0
0
آره روی یک گوشی Hotspot بساز و با گوشی دوم به اون وصل شو اگه اشتباه نکنم این دوتا دسترسی رو هم بخواد
(10 سال پیش)
0
0
(10 سال پیش)
0
0
کدوم دوتا دسترسی hotspot , Wifi (10 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
Amir
10 سال پیش
0
0
اگه اشتباه نکنم این دوتا دسترسی رو هم بخواد
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .