3

我正在編寫一個在Android設備上運行藍牙的測試應用程序。我希望我的測試應用程序能夠使設備可被發現。簡單的搜索導致我這樣的事情:如何自動執行用戶對Android用戶權限對話框的響應?

Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); 
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300); 
startActivity(discoverableIntent); 

這種方法的問題是,它會帶來用戶權限對話框。 See here

如何自動按下權限對話框中的YES或NO?

+0

你申報清單的權限?只是要確定。我從來沒有在我的應用程序中使用藍牙 –

+0

我確實擁有所有BT權限:<使用權限android:name =「android.permission.BLUETOOTH」/>'和'<使用權限android:name =「android.permission.BLUETOOTH_ADMIN」 />' – MHesham

+0

BLUETOOTH_PRIVILEGED呢?這允許您在沒有用戶交互的情況下配對藍牙設備。 –

回答

1

嗯,我有相似的經歷,這裏是我的建議

  1. 如果您的應用創造了這個權限對話框,然後你可以簡單地用咖啡來找到「Yes」按鈕下面的代碼

    onView(allOf(withText("Yes"), withParent(/* The features of the dialog */))).perform(click()); 
    
  2. 如果此對話框不屬於您的應用程序,那麼您必須使用UIAutomator。
    Android Marshmallow: Test permissions with Espresso?