0

저는 Android에서 새로운 제품이며 Android 4.3에 포함 된 새로운 Bluetooth LE 기능을 테스트하려고합니다. 문서 here on the Android site을 찾았습니다. 하지만 실제로 코드를 시작하는 걸림돌에 처해 있습니다.안드로이드에서 다른 클래스에서 개최되는 버튼 누르기에서 메소드 호출

간단히 말해서 scanDevice 코드를 호출하는 단추가 있다고 생각했지만 간단하게이 작업을 수행 할 수있는 항목이 보이지 않습니다. 문자 그대로 내가 가지고있는 것은이 수업과 당신이 새로운 프로젝트를 만들 때 만들어주는 샘플 안녕 단어 앱입니다.

아무도 도와 줄 수 있습니까? 나는 그것이 noobish 다라는 것을 알고있다. 그러나 나는 정말로 비틀 거린다.

public class DeviceScanActivity extends ListActivity { 

private BluetoothAdapter mBluetoothAdapter; 
private boolean mScanning; 
private Handler mHandler; 

// Stops scanning after 10 seconds. 
private static final long SCAN_PERIOD = 10000; 

private ArrayAdapter<Object> list; 
private Handler handler = new Handler(); 

protected void OnCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    list = new ArrayAdapter<Object>(getApplicationContext(), android.R.layout.simple_list_item_1); 
    setListAdapter(list); 
    scanLeDevice(true); 
} 

@TargetApi(18) 
public void scanLeDevice(final boolean enable) { 
    list.add("Scanning..."); 
    final BluetoothAdapter adapter = getBluetoothAdapter(); 
    if (enable) { 
     // Stops scanning after a pre-defined scan period. 
     mHandler.postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       mScanning = false; 

       // mBluetoothAdapter.stopLeScan(mLeScanCallback); 
       adapter.stopLeScan(callback); 
       list.clear(); 
      } 
     }, SCAN_PERIOD); 

     mScanning = true; 
     adapter.startLeScan(callback); 
    } else { 
     mScanning = false; 
     adapter.stopLeScan(callback); 
    } 

} 
@TargetApi(18) 
private BluetoothAdapter getBluetoothAdapter() 
{ 
    BluetoothManager manager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); 
    return manager.getAdapter(); 
} 
private final BluetoothAdapter.LeScanCallback callback = new BluetoothAdapter.LeScanCallback() 
{ 

    @Override 
    public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) { 
     // TODO Auto-generated method stub 

     { 
      list.add("found: " + device); 
      runOnUiThread(new Runnable(){ 
       @Override 
       public void run() 
       { 
        list.add(device); 
        list.notifyDataSetChanged(); 
       } 
      }); 
    } 
} 
}; 

}

답변

0

이 MainActivity에 새로운 버튼을 추가 : 참고로

내 블루투스 클래스는 이것이다

<Button 
    android:id="@+id/btnCallMethod" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:text="Call Method" /> 

는 MainActivity

의) (하지 OnCreate이 넣어
addListeners(); 
private void addListeners() { 
    Button btnCallMethod = (Button) this.findViewById(R.id.btnCallMethod); 

    // CALL METHOD BUTTON 
    btnCallMethod.setOnTouchListener(new OnTouchListener() { 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
    if (event.getAction() == MotionEvent.ACTION_UP) { 
     Intent intent = new Intent(getApplicationContext(), DeviceScanActivity.class); 
     startActivity(intent); // start the DeciveScanActivity 
    } 
    return false; 
    } 
}); 
} 

지금 (하지 OnCreate 메소드를 호출)를 DeviceScanActivity

방법 당신의 AndroidManifest를에 DeviceScanActivity를 추가하는 것을 잊지 마세요 다음 addListeners() 메소드는 MainActivity처럼 보일 것입니다 방법입니다.xml

<activity 
    android:name="com.example.example.DeviceScanActivity" 
</activity> 
+0

다른 클래스는 사용 가능한 블루투스 신호를 검색하여 나열합니다. 그래서 나는 그것이 활동의 ​​한 형태라고 생각합니다. 정말 안드로이드에 대한 새로운 것이므로 사물의 정의는 여전히 나를 혼란스럽게합니다. – N0xus

+0

내 대답을 수정했습니다. 나는 이것이 당신이 찾고있는 것이라고 생각합니다. – Al0x

+0

인 텐트 콜에서 DeviceScanActivity.class에 오류가 발생했습니다. IDE는 유형으로 해결 될 수 있다고 말합니다. 도울 수 있니? – N0xus

관련 문제