나는 안드로이드 프로그래밍에 다소 익숙하지만 지금은 내 휴대 전화 (삼성 갤럭시 노트 2)를 블루투스를 통해 회로 기판에 연결하는 프로그램을 프로그래밍하려고했습니다. 난 그냥 몇 가지 LED의 전원을 켜고 끄고 싶다. 회로 기판에 bc417 모뎀을 사용하고 있습니다.블루투스 연결 오류
이미 블루투스 예제를 검색했지만 모두 어려운 것처럼 보입니다. 원하는 명령을 원합니다. 그러나 순간 ListView에서 Item을 선택할 때 내 앱이 항상 중단됩니다.
아무도 도와 줄 수 있습니까?
package com.test.bluetoothtest;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import android.os.Bundle;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import android.bluetooth.BluetoothSocket;
public class MainActivity extends Activity {
private static final int REQUEST_ENABLE_BT = 1;
private static final UUID myuuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if(mBluetoothAdapter == null)
{
Toast.makeText(MainActivity.this, "Bluetooth couldn't be started.", Toast.LENGTH_SHORT).show();
}
if(!mBluetoothAdapter.isEnabled())
{
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
Toast.makeText(MainActivity.this, "Bluetooth started succesfully", Toast.LENGTH_SHORT).show();
}
List<String> devicelist = new ArrayList<String>();
Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
if(pairedDevices.size() > 0)
{
for(BluetoothDevice device : pairedDevices)
{
devicelist.add(device.getName());
}
}
ListAdapter adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, devicelist);
final ListView lv = (ListView)findViewById(R.id.listView1);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
try
{
Toast.makeText(MainActivity.this, lv.getAdapter().getItem(arg2).toString(), Toast.LENGTH_SHORT).show();
BluetoothDevice finaldevice = (BluetoothDevice) lv.getAdapter().getItem(arg2);
BluetoothSocket clientSocket = finaldevice.createRfcommSocketToServiceRecord(myuuid);
clientSocket.connect();
Toast.makeText(MainActivity.this, "Connectin successful!", Toast.LENGTH_SHORT).show();
}
catch(IOException e)
{
Toast.makeText(MainActivity.this, "Error!", Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Catlog :
07-10 20:38:55.115: D/AbsListView(16942): Get MotionRecognitionManager
07-10 20:38:55.335: D/libEGL(16942): loaded /system/lib/egl/libEGL_mali.so
07-10 20:38:55.345: D/libEGL(16942): loaded /system/lib/egl/libGLESv1_CM_mali.so
07-10 20:38:55.345: D/libEGL(16942): loaded /system/lib/egl/libGLESv2_mali.so
07-10 20:38:55.350: D/(16942): Device driver API match
07-10 20:38:55.350: D/(16942): Device driver API version: 10
07-10 20:38:55.350: D/(16942): User space API version: 10
07-10 20:38:55.350: D/(16942): mali: REVISION=Linux-r2p4-02rel0 BUILD_DATE=Tue Oct 16 15:37:13 KST 2012
07-10 20:38:55.400: D/OpenGLRenderer(16942): Enabling debug mode 0
07-10 20:39:05.145: D/GestureDetector(17303): [Surface Touch Event] mSweepDown False, mLRSDCnt : -1 mTouchCnt : 2 mFalseSizeCnt:0
07-10 20:39:05.240: D/AndroidRuntime(17303): Shutting down VM
07-10 20:39:05.240: W/dalvikvm(17303): threadid=1: thread exiting with uncaught exception (group=0x40db82a0)
07-10 20:39:05.245: E/AndroidRuntime(17303): FATAL EXCEPTION: main
07-10 20:39:05.245: E/AndroidRuntime(17303): java.lang.ClassCastException: java.lang.String cannot be cast to android.bluetooth.BluetoothDevice
07-10 20:39:05.245: E/AndroidRuntime(17303): at com.test.bluetoothtest.MainActivity$1.onItemClick(MainActivity.java:74)
07-10 20:39:05.245: E/AndroidRuntime(17303): at android.widget.AdapterView.performItemClick(AdapterView.java:298)
07-10 20:39:05.245: E/AndroidRuntime(17303): at android.widget.AbsListView.performItemClick(AbsListView.java:1283)
07-10 20:39:05.245: E/AndroidRuntime(17303): at android.widget.AbsListView$PerformClick.run(AbsListView.java:3074)
07-10 20:39:05.245: E/AndroidRuntime(17303): at android.widget.AbsListView$1.run(AbsListView.java:4147)
07-10 20:39:05.245: E/AndroidRuntime(17303): at android.os.Handler.handleCallback(Handler.java:615)
07-10 20:39:05.245: E/AndroidRuntime(17303): at android.os.Handler.dispatchMessage(Handler.java:92)
07-10 20:39:05.245: E/AndroidRuntime(17303): at android.os.Looper.loop(Looper.java:137)
07-10 20:39:05.245: E/AndroidRuntime(17303): at android.app.ActivityThread.main(ActivityThread.java:4898)
07-10 20:39:05.245: E/AndroidRuntime(17303): at java.lang.reflect.Method.invokeNative(Native Method)
07-10 20:39:05.245: E/AndroidRuntime(17303): at java.lang.reflect.Method.invoke(Method.java:511)
07-10 20:39:05.245: E/AndroidRuntime(17303): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
07-10 20:39:05.245: E/AndroidRuntime(17303): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
07-10 20:39:05.245: E/AndroidRuntime(17303): at dalvik.system.NativeStart.main(Native Method)
07-10 20:41:33.045: D/AbsListView(18494): Get MotionRecognitionManager
07-10 20:41:33.155: D/libEGL(18494): loaded /system/lib/egl/libEGL_mali.so
07-10 20:41:33.160: D/libEGL(18494): loaded /system/lib/egl/libGLESv1_CM_mali.so
07-10 20:41:33.165: D/libEGL(18494): loaded /system/lib/egl/libGLESv2_mali.so
07-10 20:41:33.170: D/(18494): Device driver API match
07-10 20:41:33.170: D/(18494): Device driver API version: 10
07-10 20:41:33.170: D/(18494): User space API version: 10
07-10 20:41:33.170: D/(18494): mali: REVISION=Linux-r2p4-02rel0 BUILD_DATE=Tue Oct 16 15:37:13 KST 2012
07-10 20:41:33.225: D/OpenGLRenderer(18494): Enabling debug mode 0
07-10 20:41:34.975: D/GestureDetector(18494): [Surface Touch Event] mSweepDown False, mLRSDCnt : -1 mTouchCnt : 3 mFalseSizeCnt:0
07-10 20:41:35.110: D/AndroidRuntime(18494): Shutting down VM
07-10 20:41:35.110: W/dalvikvm(18494): threadid=1: thread exiting with uncaught exception (group=0x40db82a0)
07-10 20:41:35.115: E/AndroidRuntime(18494): FATAL EXCEPTION: main
07-10 20:41:35.115: E/AndroidRuntime(18494): java.lang.ClassCastException: java.lang.String cannot be cast to android.bluetooth.BluetoothDevice
07-10 20:41:35.115: E/AndroidRuntime(18494): at com.test.bluetoothtest.MainActivity$1.onItemClick(MainActivity.java:75)
07-10 20:41:35.115: E/AndroidRuntime(18494): at android.widget.AdapterView.performItemClick(AdapterView.java:298)
07-10 20:41:35.115: E/AndroidRuntime(18494): at android.widget.AbsListView.performItemClick(AbsListView.java:1283)
07-10 20:41:35.115: E/AndroidRuntime(18494): at android.widget.AbsListView$PerformClick.run(AbsListView.java:3074)
07-10 20:41:35.115: E/AndroidRuntime(18494): at android.widget.AbsListView$1.run(AbsListView.java:4147)
07-10 20:41:35.115: E/AndroidRuntime(18494): at android.os.Handler.handleCallback(Handler.java:615)
07-10 20:41:35.115: E/AndroidRuntime(18494): at android.os.Handler.dispatchMessage(Handler.java:92)
07-10 20:41:35.115: E/AndroidRuntime(18494): at android.os.Looper.loop(Looper.java:137)
07-10 20:41:35.115: E/AndroidRuntime(18494): at android.app.ActivityThread.main(ActivityThread.java:4898)
07-10 20:41:35.115: E/AndroidRuntime(18494): at java.lang.reflect.Method.invokeNative(Native Method)
07-10 20:41:35.115: E/AndroidRuntime(18494): at java.lang.reflect.Method.invoke(Method.java:511)
07-10 20:41:35.115: E/AndroidRuntime(18494): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
07-10 20:41:35.115: E/AndroidRuntime(18494): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
07-10 20:41:35.115: E/AndroidRuntime(18494): at dalvik.system.NativeStart.main(Native Method)
07-10 20:41:47.780: I/Process(18494): Sending signal. PID: 18494 SIG: 9
Welcome to Stackoverflow. 나는 당신이 새로운 사람이라는 것을 알고 있지만, 당신의 일부 연구는 당신을 돕기 위해 먼 길을 간다는 것을 명심하십시오. 당신이 얻은 오류는 무엇 이었습니까? 다른 사람들이 당신을 도울 수 있도록 먼저 노력을 보여주십시오. 또한 [FAQ] (http://stackoverflow.com/help) 및 [How to Ask] (http://stackoverflow.com/questions/how-to-ask) – kgdesouz