2013-05-13 2 views
1

수동으로 설정 메뉴를 통해 수행 할 수 있지만 거기에 API를 안드로이드는 일부 함수 호출을 통해이 설정을 변경하려면 노출?접근성 서비스를 프로그래밍 방식으로 켜고 끄려면 어떻게해야합니까?

내 앱을 실행할 때 TalkBack을 사용하지 않도록 설정하고 싶습니다. 더 정확하게 Talkback의 터치하여 탐색 기능을 사용하지 않도록 설정하고 싶습니다.

그래서 이들의 할 것

가) 안 액세스 가능성 서비스 또는
b)는 비활성화 음성 ​​안내 지원 또는
C) 안 음성 안내 지원 기능은 후반이 하나 터치

+0

나는이 질문이 이전에 요청 받았던 것처럼 느낀다. 그러나 나는 그것을 발견 할 수 없다. 왜 서비스를 사용하지 않겠습니까? 직접 구현하고 있습니까?> –

+0

@RyanB 내 앱은 제스처를 사용하지만 '터치하여 탐색'을 사용하면 내 앱에서 모든 제스처를 훔칩니다. –

+0

보상 할 일이 있습니까? –

답변

0

조금씩함으로써 탐색, 그러나 아마 누군가를 도울 것입니다.

내 주 수업에서는 내 접근성 서비스 클래스에 대한 의도를 사용했습니다. 나는 내가 그런는 myService 클래스에 내가 onStartCommand와 의도를받을 수있는 액세스를

public class MainActivity extends AppCompatActivity { 

Switch onOffSwitch; 
Intent serviceIntent; 

public void onOff(View view){ 
    if(onOffSwitch.isChecked()){ 
     Log.i("Main Switch", "Turn on please"); 
     serviceIntent.putExtra("onOffService", true); 
    } 
    else{ 
     Log.i("Main Switch", "Turn off please"); 
     serviceIntent.putExtra("onOffService", false); 
    } 

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

    onOffSwitch = (Switch) findViewById(R.id.onOffSwitch); 
    serviceIntent= new Intent(this, myService.class); 

} 
} 

를 원할지 여부를 통해 부울을 통과 할있는 오프 스위치에 있었다. 이것은 나를 위해 잘 작동하는 것 같았다.

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    onOffService = intent.getBooleanExtra("onOffService", true); 
    return super.onStartCommand(intent, flags, startId); 
} 

나는 서비스를 활성화할지 여부를 결정하기 위해 함수 내부에서 부울을 사용합니다. 희망이 도움이됩니다!

0

당신은 단순히

disableSelf();

주를 호출하여 액세스 서비스를 해제 할 수 있습니다 이것은 또한 설정에서 서비스를 꺼집니다. 사용자에게서 다시 재가입해야합니다.
일시적으로 해제하려면 Blazej Gawlik 방식을 대신 사용하십시오.

관련 문제