2016-08-15 3 views
-3
int[] power= {123,339,23,54,23,14,23,16,21,14,21,16,21,14,23,16,21,16,21,14,23,53,23,15,22,16,21,54,23,14,23,16,21,16,21,54,23,54,23,53,23,54,23,14,23,54,23,14,23,54,22,54,23,16,21,16,21,14,23,14,23,16,21,16,21,54,23,54,23,15,22,15,22,14,23,14,23,14,23,14,23,53,23,54,23,14,23,14,23,16,21,54,23,14,23,16,21,14,23,16,21,14,23,16,21,14,23,53,23,53,23,54,23,54,23,2500}; 
ConsumerIrManager mCIR = (ConsumerIrManager) getSystemService(android.content.Context.CONSUMER_IR_SERVICE); 
    mCIR.transmit(47000, power); 

이미 매니페스트에 선언되었습니다. 그것은 충돌이 아니지만 전송 여부를 알지 못합니다. 전송할 내용과 전송 여부를 알 수 없으므로이 코드가 올바른지 여부 또는 그 방법을 알려주십시오. 프로그래밍으로 제대로 작동하고 있는지 확인하십시오. 사전에 감사합니다. TV 용 안드로이드 폰으로 적외선을 어떻게 켜고 끌 수 있습니까?

+0

은 내가 –

+0

이 장치는 IR 블래스터가 않습니다 .. 안드로이드의 4.4 버전을 사용? 그렇지 않다면이 일을하기 위해 할 수있는 일은 없습니다. –

+0

예 .. 전 전송하기 전에 확인했습니다 .. –

답변

0
power.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      irSend(v); 
     } 
    }); 

    volup.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      irSend(v); 
     } 
    }); 

    voldown.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      irSend(v); 
     } 
    }); 
    irData = new SparseArray<String>(); 
     irData.put(R.id.voldown, 
       hex2dec("0000 006d 0022 0003 00a9 00a8 0015 003f 0015 003f 0015 003f 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 003f 0015 003f 0015 003f 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 003f 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0015 0015 003f 0015 003f 0015 003f 0015 003f 0015 003f 0015 003f 0015 0702 00a9 00a8 0015 0015 0015 0e6e")); 
     irData.put(R.id.volup, 
       hex2dec("0000 006d 0022 0003 00a9 00a8 0015 003f 0015 003f 0015 003f 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 003f 0015 003f 0015 003f 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 003f 0015 003f 0015 003f 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 003f 0015 003f 0015 003f 0015 003f 0015 003f 0015 0702 00a9 00a8 0015 0015 0015 0e6e")); 
     irData.put(R.id.power, 
       hex2dec("0000 006d 0022 0003 00a9 00a8 0015 003f 0015 003f 0015 003f 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 003f 0015 003f 0015 003f 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 003f 0015 003f 0015 0015 0015 003f 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 003f 0015 0015 0015 003f 0015 003f 0015 003f 0015 003f 0015 0702 00a9 00a8 0015 0015 0015 0e6e")); 



    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 

     irInit4KitKat(); 

    } 
} 

@TargetApi(Build.VERSION_CODES.KITKAT) 
public void irInit4KitKat() { 

    // Get a reference to the ConsumerIrManager 
    mCIR = (ConsumerIrManager) getSystemService(Context.CONSUMER_IR_SERVICE); 

} 


public void irSend(View view) { 

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){ 

     irSend4Kitkat(view); 
     } 
     } 

     @TargetApi(Build.VERSION_CODES.KITKAT) 
     private void irSend4Kitkat(View view) { 

     if(mCIR.hasIrEmitter() == true){ 
     String data = irData.get(view.getId()); 
     if (data != null) { 
     String values[] = data.split(","); 
     int[] pattern = new int[values.length-1]; 

     for (int i=0; i<pattern.length; i++){ 
      pattern[i] = Integer.parseInt(values[i+1]); 
     } 
     Log.e("LOG", mCIR.getCarrierFrequencies()+ "@" +  Integer.parseInt(values[0]) + "@" + pattern); 

     mCIR.transmit(Integer.parseInt(values[0]), pattern); 
     } 
    }else{ 
      Log.e("LOG", "not supported options"); 
      Toast.makeText(MainActivity.this , "This device is not Support  infrared." , Toast.LENGTH_LONG).show(); 
     } 
     } 



protected String hex2dec(String irData) { 
List<String> list = new ArrayList<String>(Arrays.asList(irData 
    .split(" "))); 
list.remove(0); // dummy 
int frequency = Integer.parseInt(list.remove(0), 16); // frequency 
list.remove(0); // seq1 
list.remove(0); // seq2 

for (int i = 0; i < list.size(); i++) { 
list.set(i, Integer.toString(Integer.parseInt(list.get(i), 16)*26)); 
} 

frequency = (int) (1000000/(frequency * 0.241246)); 
    list.add(0, Integer.toString(frequency)); 

irData = ""; 
for (String s : list) { 
irData += s + ","; 
} 
return irData; 
} 
} 

는 또한 menifest 파일에 권한을 설정합니다.

<uses-permission android:name="android.permission.TRANSMIT_IR" 
android:required="false" /> 

관련 문제