180943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov/* 280943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * Copyright (C) 2013 The Android Open Source Project 380943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * 480943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * Licensed under the Apache License, Version 2.0 (the "License"); 580943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * you may not use this file except in compliance with the License. 680943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * You may obtain a copy of the License at 780943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * 880943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * http://www.apache.org/licenses/LICENSE-2.0 980943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * 1080943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * Unless required by applicable law or agreed to in writing, software 1180943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * distributed under the License is distributed on an "AS IS" BASIS, 1280943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1380943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * See the License for the specific language governing permissions and 1480943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * limitations under the License. 1580943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov */ 1680943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov 1780943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganovpackage android.app; 1880943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov 1980943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganovimport android.accessibilityservice.IAccessibilityServiceClient; 2080943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganovimport android.graphics.Bitmap; 2180943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganovimport android.view.InputEvent; 221376d600d8e0eefdbc0aa11d398cf7517fc77129Svetoslavimport android.view.WindowContentFrameStats; 231376d600d8e0eefdbc0aa11d398cf7517fc77129Svetoslavimport android.view.WindowAnimationFrameStats; 2480943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganovimport android.os.ParcelFileDescriptor; 2580943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov 2680943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov/** 2780943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * This interface contains privileged operations a shell program can perform 2880943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * on behalf of an instrumentation that it runs. These operations require 2980943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * special permissions which the shell user has but the instrumentation does 3080943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * not. Running privileged operations by the shell user on behalf of an 311376d600d8e0eefdbc0aa11d398cf7517fc77129Svetoslav * instrumentation is needed for running UiTestCases. 3280943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * 3380943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * {@hide} 3480943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov */ 3580943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganovinterface IUiAutomationConnection { 361dd872260b3ccfbe492d1be0bdbb3f98235b3ba3Phil Weaver void connect(IAccessibilityServiceClient client, int flags); 3780943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov void disconnect(); 3880943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov boolean injectInputEvent(in InputEvent event, boolean sync); 3980943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov boolean setRotation(int rotation); 4080943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov Bitmap takeScreenshot(int width, int height); 411376d600d8e0eefdbc0aa11d398cf7517fc77129Svetoslav boolean clearWindowContentFrameStats(int windowId); 421376d600d8e0eefdbc0aa11d398cf7517fc77129Svetoslav WindowContentFrameStats getWindowContentFrameStats(int windowId); 431376d600d8e0eefdbc0aa11d398cf7517fc77129Svetoslav void clearWindowAnimationFrameStats(); 441376d600d8e0eefdbc0aa11d398cf7517fc77129Svetoslav WindowAnimationFrameStats getWindowAnimationFrameStats(); 45121e0c073992658ca0ba055f40bf3b130caa819aSvetoslav void executeShellCommand(String command, in ParcelFileDescriptor fd); 4652153f4c0540a991b5b7214f4f14b5a891479a3cSvet Ganov void grantRuntimePermission(String packageName, String permission, int userId); 4752153f4c0540a991b5b7214f4f14b5a891479a3cSvet Ganov void revokeRuntimePermission(String packageName, String permission, int userId); 487bb48725debf53a1142e959907dae12b729ae531Svet Ganov 497bb48725debf53a1142e959907dae12b729ae531Svet Ganov // Called from the system process. 507bb48725debf53a1142e959907dae12b729ae531Svet Ganov oneway void shutdown(); 5180943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov} 52