&'un yakındaki Bluetooth cihazlarına bağlandığını tespit eden bu uygulamayı geliştirmeye çalışıyorum. Uygulamamın çöktüğü bir NULLPOINTEREXCEPTION uygulamasına rastladım. UUID'imin herhangi bir değer verilmemesine bağlı olduğunu anladım. Şimdi Android geliştirme için yeni bir markayım & UUID'ime hangi değerin atanacağını bilmiyorum, böylece çökmez.Uygulamamın UUID'inin neye ihtiyacı olduğunu nasıl öğrenebilirim?
Diğer Bluetooth aygıtlarına bağlantıyı gerçekleştiren ConnectedBTDevice.java benim.
package vertex2016.mvjce.edu.bluealert;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.io.IOException;
import java.util.UUID;
public class ConnectedBTDevice extends AppCompatActivity {
public BluetoothDevice btd;
public BluetoothSocket btSocket, tempSocket;
private UUID myUUID;
ArrayAdapter arr;
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_connected_btdevice);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
arr = new ArrayAdapter(this, android.R.layout.simple_list_item_2);
btd = getIntent().getParcelableExtra("BluetoothDevice");
connectBT();
displayStuff();
}
public void connectBT() {
Thread myThread = new Thread() {
public void run() {
tempSocket = null;
btSocket = null;
try {
tempSocket = btd.createRfcommSocketToServiceRecord(myUUID);
} catch (IOException e) {
e.printStackTrace();
}
BluetoothAdapter.getDefaultAdapter().cancelDiscovery();
try {
tempSocket.connect();
arr.add("CONNECTED TO-->" + btd.getName());
} catch (IOException e) {
e.printStackTrace();
try {
tempSocket.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
};
myThread.start();
}
public void displayStuff()
{
lv = (ListView)findViewById(R.id.connectedBTlistView);
lv.setAdapter(arr);
}
}
Ve bu
03-24 00:32:11.254 5772-5772/vertex2016.mvjce.edu.bluealert I/Timeline: Timeline: Activity_idle id: [email protected] time:66442377
03-24 00:32:11.594 5772-5772/vertex2016.mvjce.edu.bluealert E/ActivityThread: Performing stop of activity that is not resumed: {vertex2016.mvjce.edu.bluealert/vertex2016.mvjce.edu.bluealert.MainActivity}
java.lang.RuntimeException: Performing stop of activity that is not resumed: {vertex2016.mvjce.edu.bluealert/vertex2016.mvjce.edu.bluealert.MainActivity}
at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3377)
at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3458)
at android.app.ActivityThread.access$1200(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1350)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5292)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
03-24 00:32:16.677 5772-5772/vertex2016.mvjce.edu.bluealert I/Timeline: Timeline: Activity_idle id: [email protected] time:66447800
03-24 00:32:17.811 5772-8519/vertex2016.mvjce.edu.bluealert I/Timeline: Timeline: Activity_launch_request id:vertex2016.mvjce.edu.bluealert time:66448935
03-24 00:32:18.420 5772-5772/vertex2016.mvjce.edu.bluealert I/Timeline: Timeline: Activity_idle id: [email protected] time:66449543
03-24 00:32:24.308 5772-5772/vertex2016.mvjce.edu.bluealert I/Timeline: Timeline: Activity_launch_request id:vertex2016.mvjce.edu.bluealert time:66455431
03-24 00:32:24.593 5772-9062/vertex2016.mvjce.edu.bluealert W/BluetoothAdapter: getBluetoothService() called with no BluetoothManagerCallback
03-24 00:32:24.611 5772-9062/vertex2016.mvjce.edu.bluealert E/AndroidRuntime: FATAL EXCEPTION: Thread-39196
Process: vertex2016.mvjce.edu.bluealert, PID: 5772
java.lang.NullPointerException: Attempt to invoke virtual method 'long java.util.UUID.getMostSignificantBits()' on a null object reference
at android.os.ParcelUuid.writeToParcel(ParcelUuid.java:129)
at android.bluetooth.IBluetooth$Stub$Proxy.connectSocket(IBluetooth.java:1767)
at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:309)
at vertex2016.mvjce.edu.bluealert.ConnectedBTDevice$1.run(ConnectedBTDevice.java:63)
03-24 00:32:25.172 5772-5772/vertex2016.mvjce.edu.bluealert I/Timeline: Timeline: Activity_idle id: [email protected] time:66456295
03-24 00:32:25.945 5772-9062/vertex2016.mvjce.edu.bluealert I/Process: Sending signal. PID: 5772 SIG: 9
Sorum şu hata gösterir logcat: Ben bunun bana göre herhangi bir cihaz bağlandığında böyle myUUID atamak ne değeri? Eğer bu soru aptalca geliyorsa özür dilerim, ama UUID'in nasıl bir rol oynadığına dair net bir resim elde etmeye çalışıyorum (& nasıl kullanılır) (hangi değerlerin atanacağı gibi).
Android: How do bluetooth UUIDs work? gibi iletilere gittim, ancak ana soruyu yanıtlamadı. UUID'ime hangi değeri atadım?
Zaman ayırdığınız için teşekkür ederiz!
Olası kopyası [Android: Bluetooth UUID'leri nasıl çalışır?] (Http://stackoverflow.com/questions/13964342/android-how-do-bluetooth-uuids-work) –
Ne zaman deyin? MyUUID'e istediğim herhangi bir cihaza bağlanacak şekilde atayın mı? ”demek istediğim, tanıştığım her insanla konuşmak ve 'Bob' olarak adlandırmak istiyorum. UUID, hangi cihazı/uygulamayı konuştuğunuzu belirlemek için kullandığınız bir addır. Şimdi iletişim kurmaya çalıştığınız aygıtın UUID'sini almak üreticiye bağlıdır (ya da ne olduğunu bulmak için tersine mühendislik tekniklerini deneyin) –
Bu biraz basitleştirilebilir - yeniden yardımcı olabilir http://developer.android.com/guide/topics/connectivity/bluetooth.html adresini ve özellikle http://developer.android.com/guide/topics/connectivity/bluetooth.html#ConnectingDevices adresini okuyun –