Android 7.0 블 루 투 스 장치 전기량 가 져 오기
5983 단어 Android7.0framework
1.HeadsetStateMachine packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java Bluetooth Assigned Numbers.GOOGLE 는 어느 회사 의 것 을 마음대로 사용 하 는 지 기억 하고 라디오 에 계속 등록 하 세 요.process VendorSpecification at 는 어떤 at command 가 지원 하지 않 는 다 면 추가 할 수 있 습 니 다.
static {
classInitNative();
VENDOR_SPECIFIC_AT_COMMAND_COMPANY_ID = new HashMap();
VENDOR_SPECIFIC_AT_COMMAND_COMPANY_ID.put("+XEVENT", BluetoothAssignedNumbers.PLANTRONICS);
VENDOR_SPECIFIC_AT_COMMAND_COMPANY_ID.put("+ANDROID", BluetoothAssignedNumbers.GOOGLE);
//aaron
Log.e("a", "put IPHONEACCEV " );
VENDOR_SPECIFIC_AT_COMMAND_COMPANY_ID.put("+XAPL", BluetoothAssignedNumbers.GOOGLE);
VENDOR_SPECIFIC_AT_COMMAND_COMPANY_ID.put("+IPHONEACCEV", BluetoothAssignedNumbers.GOOGLE);
}
2.라디오 BluetoothSettings packages/apps/Settings/src/com/android/settings/bluetooth/BluetoothSettings.java 를 등록 하여 settings 의 블 루 투 스 인터페이스 에 라디오 를 등록 한 후 전 기 를 표시 합 니 다.
//aaron
IntentFilter filter=new IntentFilter();
filter.addAction(BluetoothHeadset.ACTION_VENDOR_SPECIFIC_HEADSET_EVENT);
//filter.addCategory(BluetoothHeadset.VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID_CATEGORY+"."+BluetoothAssignedNumbers.GOOGLE);
filter.addCategory(BluetoothHeadset.VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID_CATEGORY+"."+BluetoothAssignedNumbers.GOOGLE);
getActivity().registerReceiver(mIntentReceiver,filter);
Log.i("a", "registerReceiver ");
//end
private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (action.equals(BluetoothHeadset.ACTION_VENDOR_SPECIFIC_HEADSET_EVENT)) {
Log.i("a", "intent "+intent);
String command = intent.getStringExtra(BluetoothHeadset.EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD);
if ("+IPHONEACCEV".equals(command)) {
Object[] args = (Object[]) intent.getSerializableExtra(BluetoothHeadset.EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_ARGS);
if (args.length >= 3 && args[0] instanceof Integer && ((Integer)args[0])*2+1<=args.length) {
for (int i=0;i0]);i++) {
if (!(args[i*2+1] instanceof Integer) || !(args[i*2+2] instanceof Integer)) {
continue;
}
if (args[i*2+1].equals(1)) {
float level = (((Integer)args[i*2+2])+1)/10.0f;
Log.i("a", "battery "+level);
break;
}
}
}
}
}
}
};
HFP 명령 AT+IPHONEACCEV 첨부
설명:이어폰 상태 변경 을 보고 하 는 발기인:이어폰 형식:AT+IPHONEACCEV=[Number of key/value pairs],[key 1],[val 1],[key 2],[val 2],...매개 변수:Number of key/value pairs:다음 매개 변수의 수량 key:보 고 된 상태 변화 유형 1=전기량 등급 2=일시 정지 상태 val:변 경 된 값 Battery events:0-9 사이 의 숫자 문자열 A string value between'0'and'9'.Dock state:0=undocked,1=docked.Example:AT+IPHONEACCEV=1,1,3
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Android 에서 PopupWindow 가 7.0 이후 에 적합 한 해결 을 자세히 설명 합 니 다.본 고 는 안 드 로 이 드 에서 PopupWindow 가 7.0 이후 에 적합 한 해결 을 상세 하 게 설명 하고 여러분 에 게 공유 합 니 다.구체 적 으로 다음 과 같 습 니 다. 필요:위의 그림 왼쪽 효과 와...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.