2014-12-10 1 views
0

저는 현재 마이크로 컨트롤러와 통신하기 위해 API18에 USB Android Open Accessory v2.0을 개발 중입니다. 내 주요 활동에서 데이터를 전송할 때 마이크로 컨트롤러와 안드로이드를 성공적으로 연결했습니다. 그러나, 주요 활동 내에서 조각으로부터 데이터를 보내려고했을 때 의사 소통이 이루어지지 않는 것처럼 보였습니다.Android Open Accessory - 단편으로부터 메시지 교환

패키지 구조 :

com.main 
    MainActivity.java 
    AOA     -----> (Package) 
     AOAInterface.java 
    Fragments    -----> (Package) 
     HomeFragment.java 

MainActivity.java :

public class MainActivity extends Activity implements OnClickListener{ 

    AOAInterface mAOAMain; 

    /********************************************************************************* 
    * Private variables 
    ********************************************************************************/ 

    private ImageButton Home; 
    public static final int IO  = 1; 
    public static final int Buzzer = 0x10; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Home = (ImageButton) this.findViewById(R.id.button_home); 
     mAOAMain = new AOAInterface(this); 
     Home.setOnClickListener(this); 
    } //end onCreate 

    @Override 
    protected void onResume(){ 
     super.onResume(); 
     mAOAMain.vAOA_Resume(); 
    } //end onResume 

    @Override 
    protected void onPause(){ 
     super.onPause(); 
    } //end onPause 

    @Override 
    protected void onDestroy(){ 
     super.onDestroy(); 
     mAOAMain.vAOA_Destroy(); 
    } //end onDestroy 

    @Override 
    public void onClick(View v) { 
     byte[] data = new byte[2]; 
     data[1] = 0; 
     switch (v.getId()){ 
      case R.id.button_home: 
        data[0] = IO; 
        data[1] |= Buzzer; 

        mAOAMain.vAOA_Send(data);  
      break; 
     } //end switch 
    } //end onClick 
} 

HomeFragment.java

public class HomeFragment extends Fragment implements OnClickListener{ 
    AOAInterface mAOAHome; 
    ImageButton Light; 
    public static final int IO  = 1; 
    public static final int Buzzer = 0x10; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState){ 

     View view = inflater.inflate(R.layout.fragment_home, container, false); 

     //mAOAHome = new AOAInterface(getActivity()); 
     Light  = (ImageButton) view.findViewById(R.id.button_light); 

     Light.setOnClickListener(this); 
     return view; 
    } 

    @Override 
    public void onAttach(Activity activity){ 
     super.onAttach(activity); 
     mAOAHome = new AOAInterface(activity); 

    } 

    @Override 
     public void onClick(View v) { 
     byte[] ucCommandPacket = new byte[2]; 
     switch(v.getId()){ 
      case R.id.button_light: 
        ucCommandPacket[0] = IO; 
        ucCommandPacket[1] = Buzzer; 
        mAOAHome.vAOA_Send(ucCommandPacket); 
        Log.d(TAG, "Data[0]"+ucCommandPacket[0]); 
        Log.d(TAG, "Data[1]"+ucCommandPacket[1]); 
       break; 
     } 
    } 
} 

AOAInterface.java

내 프로젝트 구조 및 코드에 따라

조각으로 작성한 코드를 수행 할 수 있습니까? 아니면 USB를 통해 전송하기 전에 인터페이스를 생성하고 주요 활동으로 전달해야합니까? 고맙습니다.

답변

0

내 문제에 대한 해결책을 찾았으므로 데이터를 활동에 전달하기 위해 내 조각에 인터페이스를 만들어야합니다. 그런 다음 활동을 통해 USB를 통해 Android Open Accessory 프로토콜을 시작합니다.

관련 문제