2013-05-13 103 views
1

手動它可以通過設置菜單來完成,但是有沒有一個API android公開通過一些函數調用來改變這個設置?如何以可編程方式打開和關閉輔助功能服務?

我想要實現的是在應用程序運行時禁用話語提示。更確切地說,我只是想禁用話語提示的探索功能。

所以他們都會讓你做

一)禁用可訪問性服務或
二)禁止話語提示或
三)禁止話語提示功能觸摸瀏覽

+0

我覺得這個問題以前曾被問過,但是我找不到它。你爲什麼要禁用這項服務,你是否在自己的實現?> – 2013-05-13 12:59:01

+0

@RyanB我的應用程序利用手勢,但是當「通過觸摸瀏覽」啓用時,它會從我的應用程序中竊取所有手勢。 – 2013-05-14 08:45:59

+0

你是否在做一些補償? – 2013-05-14 15:36:42

回答

0

一點點在這一個晚,但也許它會幫助某人。

在我的主類中,我使用了我的輔助功能服務類的意圖。我有一個斷開關上,我將通過一個布爾過我要不要來訪問

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); 

} 
} 

然後在爲myService類我會收到與onStartCommand意圖。這似乎對我很好。

@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方法。

相關問題