База ответов ИНТУИТ

Разработка приложений для Android 4.0 - ответы

Количество вопросов - 88

 <permission-group android:description="@string/groupNetwork"  android:icon="@drawable/networkIcon" android:label="@string/groupNetworkLabel" android:name="@string/groupNetwork" />    
Для чего предназначен код?

Одиночное действие должно быть определено в файле AndroidManifest.xml и доступно под двумя названиями, с двумя отдельными наборами фильтров. Какой атрибут для этого используется?

Где хранится сертификат приложения (cert.rsa) при построении в APK?

Файлы сохраняются на устройстве внутренней памяти. Что будет с файлами, когда пользователь удалит приложение?

     File file = new File(myContext.getExternalFilesDir(null), "appData.txt");      try {      FileOutputStream os = new FileOutputStream(file, true);      OutputStreamWriter out = new OutputStreamWriter(os);      out.write{data);      out.close();      } catch (e) { }    
При компиляции ошибок не обнаружено, все переменные имеют корректные значения, устройства внешней памяти установлены и доступны. Какие еще условия должны быть соблюдены, чтобы с помощью данного кода можно было успешно сохранить файл с данными?

     1: boolean mExternalStorageAvailable = false;     2: boolean mExtemalStorageWriteable = false;     3: String state = Environment.getExternalStorageState{) ;     4:     5: if (Environment.MEDIA_MOUNTED.equals(state)) {     6:  mExternalStorageAvailable = mExternalStorageWriteable = AAA;     7: } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {     8:  mExternalStorageAvailable = BBB;     9:  mExternalStorageWriteable = CCC;     10: } else {     11:  mExternalStorageAvailable = mExternalStorageWriteable = DDD;     12: }    
Необходимо установить значения флагов mExternalStorageAvailable и mExternalStorageWriteable, которые позволят корректно отобразить состояние внешнего устройства. Какие значения должны быть вместо AAA, BBB, CCC и DDD (строки 6, 8, 9 и 11 соответственно)?

     public boolean onCreateOptionsMenu(Menu menu) {       MenuInflater inflater = getMenuInflater();       inflater.inflate(R.menu.mainnenu, menu);       return false;     }    
Меню, реализованное с помощью данного фрагмента кода, не отображается. Программа не выдает никаких сообщений об ошибках. Что может быть возможной причиной?

3-2-2 Какие разделы могут быть пропущены при создании провайдера, потребляющего контент?

Разрабатывается приложение, в котором должна быть возможность добавлять события в пользовательский календарь. В файле AndroidManifest.xml не нужно настраивать никакие дополнительные разрешения. Как достигнуть данной цели?

Какое из средств отладки вы используете, чтобы делать скриншоты приложений, запущенных на устройстве?

Необходимо получить удаленный доступ к системе для сохранения данных. Удаленная система имеет REST интерфейс. В приложения могут быть добавлены только библиотеки Android.

 package company.app.aidl;  interface IMathService {   // INSERT CODE HERE }    
На месте комментария должен быть метод, в который можно передать два целых значения, перемножить их и вернуть результат. Это:

Java файлы с исходным кодом, применяемые на платформе Android, относятся к типу

Необходимо создать образ SD карты с файловой системой FAT32, который может быть протестирован на устройствах с различными конфигурациями. Какая программа позволит создать данный образ?

Запущен долговременный процесс, и вы не хотите, чтобы он влиял на поток UI. Вы решили создать новый поток, но не хотите писать шаблонный код для управления потоками? Какой класс предлагает необходимую функциональность?

     // This method comes from an Activity class.      public void onClick(View v) {       new Thread(new Runnable () {        public void run() {        Bitmap b = loadImageFromNetwork("http://example.com/image.png");        mImageView.setImageBitmap(b);        }       }).start();      }        
Почему код не осуществляет ожидаемых действий?

public class MyPhoneReceiver extends BroadcastReceiver {  @Override  public void onReceive(Context context, Intent intent) {  Bundle extras = intent.getExtras();  if (extras != null) {   String state = extras.getString(TelephonyManager.EXTRA_STATE);   if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {    // INSERT CODE HERE    Log.w("DEBUG", phoneNumber);    } }}        
Нужно сохранить входящие телефонные номера. Какая строка кода должна быть на месте комментария?

Действие A запускает B, которое запускает C. Действие A работает вместо B, когда пользователь нажимает кнопку назад из действия C. Какой флаг может быть использован для проверки того, что A работает вместо B?

Необходимо добавить поисковый интерфейс в приложение. Android должен контролировать все события, связанные с поиском. Также интерфейс должен включаться во все действия, которые вызывают его. Какой интерфейс нужно использовать для поиска?

     <LinearLayout android:orientation="vertical">       <Button android:id="@+id/Button1" />        <Button android:id="@+id/Button2" />     </LinearLayout>        
Пример кода взят из макета XML файла. Необходимо убедиться, что Button 1 будет находиться в фокусе, после того как пользователь сместит курсор ниже Button 2. Какую конструкцию вы бы добавили?

     public class MyCustomViewView extends View {      private Paint mTextPaint;      private String mText;      private int mAscent;           public MyCustomViewView(Context context, AttributeSet attrs) {        super(context, attrs);       mTextPaint = new Paint();       mTextPaint.setAntiAlias(true);        mTextPaint.setTextSize(         16 * getResources().getDisplayMetrics().density       );       mTextPaint.setColor(0xFF000000);       setPadding(3, 3, 3, 3);       mAscent = (int) mTextPaint.ascent();       TypedArray a = context.obtainStyledAttributes(         attrs, R.styleable.MyCustomViewView       );       CharSequence s = a.getString (R.styleable.text);       this.mText = s.toString();       invalidate();       requestLayout();       a.recycle();        }              @Override      protected void onDraw(Canvas canvas) {        super.onDraw(canvas);       canvas.drawText(         mText, getPaddingLeft(), getPaddingTop() - mAscent, mTextPaint       );       }     }        
Какого размера будет изображение?

     Context context = getApplicationContext{);     CharSequence text = "Data operation is complete";     int duration = Toast.LENGTH_SHORT;     Toast toast = Toast makeText(context, text, duration);     // INSERT CODE HERE     toast.show();        
Какая строка кода должна быть на месте комментария, чтобы разместить всплывающее окно Toast в верхнем левом углу экрана?

String lc = context.getResources().getConfiguration().locale.getLanguage(); Что нужно заменить в коде, чтобы можно было использовать язык стандарта ISO?

 WebView myWebView = (WebView)findViewById(R.id.webview); myWebView.loadUrl{"http://www.example.com");    
Как убедиться в работоспособности кода?

Реализован простой класс, осуществляющий SQLiteOpenHelper. Также данный класс содержит методы для выполнения различных операций с базами данных, таких как создание записей клиентов. Большинство операций используют простой метод execSQL(). Однако существует более сложная операция, требующая псевдонимы столбцов. Какой класс может быть использован для создания более сложных SQL запросов?

Устанавливается приложение на устройство с операционной системой Android 4.0. Для воспроизведения аудио потоков из сети Интернет, приложение использует класс MediaPlayer. В предыдущих версиях Android все работало, однако в Android 4.0 поток не воспроизводится. Код приложения не дорабатывался и не предъявлялись никакие дополнительные требования. Что нужно изменить, чтобы аудио потоки воспроизводились всеми версиями Android, включая 4.0?

Приложение сохраняет медиа файлы в одной из директорий SD карты. Необходимо, что данные файлы не могли быть обнаружены с помощью Media Scanner. Какие действия должны быть предприняты?

Вы используете класс ListActivity, чтобы отобразить экран с одним Listview, из которого пользователь выбирает пункт. Вы хотите настроить отображение этого экрана. Предполагая, что отображение определено, какая строка кода позволит вам задать пользовательский макет с именем my_custom_layout?

Виджет ListView получает сообщения от:

Необходимо сохранить личные файлы, созданные в приложении. Нужен только список имен файлов. Какой метод необходимо использовать?

Виртуальное устройство Android – это:

Какая команда отправляет файл myFile.txt из директории /work/project1 на устройство Android в директорию /sdcard/myProject?

Во время отладки объем памяти, используемой приложением, увеличивается, потому что:

В приложении появляется диалоговое окно с сообщением Application Not Responding. В приложении один экран с несколькими текстовыми полями, кнопка "Сохранить" данные в текстовый файл и приемник, запускающийся, когда пользователь нажимает на кнопку "Сохранить". Сто тестов показали, что данные успешно сохраняются в текстовый файл, однако диалоговое окно с сообщением ANR появляется случайным образом. Какая причина появления данного диалогового окна?

LocationManager manager =(LocationManager)getSystemService(Context.LOCATION_SERVICE);Criteria criteria = new Criteria();criteria.setAccuracy(Criteria.ACCURACY_LOW);String provider = manager.getBestProvider(criteria, false);Location location = locationManager.getLastKnownLocation(provider);        
Чтобы убедиться, что точность расположения менее, чем 100 метров, нужно:

Действие в приложении запускается, если указано полное имя класса в Intents, и не запускается во всех остальных случаях. Как неявно убедиться в том, что действие будет запущено?

Приложение разработано для устройств, поддерживающих французский язык. Файл с соответствующими настройками хранится по адресу res/values-fr-rFR/strings.xml. На одном из экранов приложения метка текстового поля отображается на английском языке. Почему метка текстового поля не отображается на французском?

Для того чтобы включать в приложение статические файлы и обращаться к ним во время работы программы, необходимо:

Какие четыре типа диалоговых окон есть в Android?

Какие макеты допускается использовать при разработке виджетов для рабочего стола?

На Android market опубликовано приложение, в файле манифеста которого прописана 5-я версия maxSdk. От пользователей поступают жалобы, что после обновления Android до версии 2.0.1 (API level 6) они не могут использовать данное приложение. После какого обновления приложение сможет работать на новой версии Android?

     public class CustomerDBHelper extends SQLiteOpenHelper {      CustomerDBHelper(Context context) {        super(context, "CustomerDatabase", null, 1);       }           @Override      public void onCreate(SQLiteOatabase db) {        db.execSQL("CREATE TABLE customers (lastName TEXT);");       }     }    
Почему данный класс НЕ может быть скомпилирован?

Мобильные устройства часто подсоединяются к удаленным объектам через сеть, например, точки доступа Wi-Fi. Для безопасного соединения ваше устройство всякий раз должно:

     public void onResume() {       super.onResume() ;      if (NfcAdapter.XXXXXXXXXX.equals(getlntent().getAction())) {        Parcelable[] rawMsgs = intent.getParcelableArrayExtra(        NfcAdapter.EXTRA_NDEF_MESSAGES      );       if (rawMsgs != null) {        msgs = new NdefMessage[rawMsgs.length];         for (int i = 0; i < rawMsgs.length; i++) {         msgs[i] = (NdefMessage) rawMsgs[i];         }        }       }      }    
Необходимо активировать действие кода как часть NDEF. Полезная нагрузка проявляется при получении NFC метки. Какая константа заменит XXXXXXXXXX?

     public class MainActivity extends Activity {       @Override       public void onCreate(Bundle savedInstanceState) {       super.onCreate(savedlnstanceState) ;       setContentView(R.layout.main);       getLoaderManager().initLoader(0, null, this);       }      @Override       public Loader<Cursor> onCreateLoader(int id, Bundle args) {       // Create and return a new Loader       }      }     
Как убедиться что onCreateLoader() запускается, когда нужен новый Loader?

Для каких интегрированных сред (IDE) Google предлагает надстройки для разработки под Android?

Вы просматриваете результаты трассировки вашего приложения. Приложение создает потоки, чтобы справиться с интенсивно-вычислительной работой. Вы знаете, что приложение создает несколько потоков в течение определенного времени, однако в результатах трассировки видите только один. Что вызывает данную проблему?

Какой класс используется для отправки СМС-сообщений?

Для разделения приложений, Android присваивает каждому:

Вызывается метод, выполняемый в IBinder и изначально созданный другим процессом. Что происходит с методом?

Что НЕ может делать приемник?

Необходимо отправить Intent так, чтобы оно продолжало существовать после передачи сообщения об успешном завершении. Данные должны быть доступны. Какой тип Intent должен быть использован?

     // onCreate() method from your searchable Activity class     @Override     public void onCreate(Bundle savedInstanceState) {       super.onCreate(savedInstanceState);       setContentView(R.layout.search);       Intent intent = getIntent();       if (Intent.ACTION_SEARCH.equals(intent.getAction())) {      String query = intent.getStringExtra(SearchManager.QUERY);       doMySearch(query);       }      }    
Как проверить, что действие запущено, когда пользователь выполняет поиск в виджете?

Вы устанавливаете меню в приложение. Вы создали XML файл mainMenu.xml и разместили его в папке assets/menu. Когда вы попытаетесь создать меню, используя getMenuInflater().inflate(R.menu.mainMenu, viewGroup), меню не создается. Какое действие должно быть предпринято для устранения данной проблемы?

Вы работаете с главным действием приложения. Требуется, чтобы действие, запускаемое после главного, было не во весь экран. Как этого добиться?

     <?xml version="1.0" encoding="utf-8"?>     <transition      xmlns:android="http://schemas.android.com/apk/res/android" >       <item android:drawable="@drawable/myLogo1" />      <item android:drawable="@drawable/myLogo2" />     </transition>        
Перемещение за 1 секунду в коде класса View осуществляется с помощью:

Нужно осуществить разрешение для URI контент-провайдера. Вы хотите указать путь, начинающийся с /contacts/. Какую конфигурацию для вашей службы необходимо поместить в файл AndroidManifest.xml?

Нужно осуществить разрешение для URI контент-провайдера. Вы хотите указать путь, начинающийся с /contacts/. Какую конфигурацию для вашей службы необходимо поместить в файл AndroidManifest.xml?

Если пользователи жалуются на то, что во время сохранения данных на удаленном сервере быстро заканчивается батарея, разработчик должен убедиться в том, что приложение не:

Какая последовательность обработчиков обратного вызова класса Activity выполняется сначала?

Вы пытаетесь устранить неполадки приложения с помощью журнала регистрации. На выходе слишком много данных, которые могут быть использованы. Вы должны ограничить количество данных на выходе. Необходимо получить данные отладки от ActivityManager, а также от приложения (используется метка CustomerProcessor). Какие фильтры необходимо использовать для получения необходимых данных?

     Intent i = new Intent(Intent.ACTION_VIEW);      Bundle b = new Bundle();      b.putString("EMAIL", "abc@xyz.com");    
Как, присоединив Bundle к Intent, к Intent можно передать следующее действие? Какая строка кода описывает эту возможность?

Синтаксис android:id="@+id/foo" – это XML-макет используемый для:

На сайте размещено приложение. Как пользователь сможет установить это приложение?

Вы представили обновленную версию приложения, которое опубликовано на Android market. Тем не менее, вы получаете сообщения, что, когда люди пытаются установить обновление, оно устанавливается в качестве нового приложения, а не как обновление. Что вызывает данную проблему?

Какой метод не участвует в жизненном цикле Activity

Какая команда используется для просмотра результатов отладки?

 public class greeter {  public String buildGreeting(String firstName) {   String greetingl = "Hello, ";   String greeting2 = ", and welcome to the application!";   return greetingl + firstName + greeting2;   }    public StringBuffer getGreeting{String firstName) {   StringBuffer sb = new StringBuffer();    sb.append(buildGreeting(firstName));    return sb;  } }    
Как вызвать метод getGreeting(), не создавая временных объектов?

Вы работаете с кодом, использующим базу данных SQLite. SQL запросы не возвращают ожидаемых значений. Необходимо проверить некорректные данные и структуры таблиц, когда приложение будет запущено в режиме эмулятора. Какой инструмент вы используете для устранения неполадок базы данных?

Какая команда используется, для того чтобы увидеть результат отладки?

При попытке вставки данных с клавиатуры, создаются объекты ClipData, запрашивающие:

     MyActivity.java      ---------------      package com.example.app;           import android.app.Activity;      import android.os.Bundle;           public class ExampleActivity extends Activity {            @Override       public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(new MyDrawView(this));           }            }           MyDrawView.java      ---------------      package com.example.all;           import android.content.Context;      import android.graphics.Canvas;      import android.graphics.Color;      import android.graphics.Paint;      import android.view.View;           public class MyDrawView extends View {              public MyDrawView(Context context) {         super(context);       }              protected void onDrawView(Canvas canvas) {         Paint paint = new Paint();         paint.setColor(Color.GREEN);         paint.setTextSize(25);         paint.setAntiAlias(true);         canvas.drawText("Hello World", 5, 30, paint);       }             }     
Построение и развертывание приложения производятся правильно. Какие ошибки в коде приведут к тому, что текст НЕ будет отображаться полностью?

 <xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"  package="com.company.app">  <uses-sdk android:minSdkVersion="8" />  <application   android:icon="@drawable/ic1_launcher"   android:label="@string/app1_name" >   <activity android:label=@string/app1_name"    android:name=".MainActivity" >    <intent-filter>     <action android:name="android.intent.action.MAIN" />     <category android:name="android.intent.category.LAUNCHER" />    </intent-filter>   </activity>  </application>  <application   android:icon="@drawable/ic2_launcher" android:label="App#2" >   <activity android:label="App#2" android:name=".MainActivity" >    <intent-filter>     <action android:name="android.intent.action.MAIN" />     <category android:name="android.intent.category.LAUNCHER" />    </intent-filter>   </activity>   </application> </manifest>        
Почему данные на выходе некорректны?

     1: public class ProgressTestActivity extends Activity {     2:     3:   private Handler handler;     4:   private ProgressBar progress;     5:     6:   @Override     7:   public void onCreate{Bundle savedInstanceState) {     8:   super.onCreate(savedInstanceState);     9:   setContentView(R.layout.main);     10:  progress = (ProgressBar)findViewById(R.id.progressBar);     11:  handler = new Handler();     12:  }     13:     14:  public void startProgress(View view) {     15:  Runnable runnable = new Runnable() {     16:   @Override     17:   public void run() {     18:    for (int i = 0; i <= 10; i++) {     19:     final int value = i;     20:     try {     21:      Thread.sleep(2000);     22:     } catch {InterruptedException e) { }     23:     handler.post(new Runnable() {     24:      @Override     25:      public void XXX() {     26:       progress.setProgress(value);     27:      }     28:     });     29:    }     30:   }     31:  };     32:      new Thread(runnable).start();     33:     }     34:  }        
Какой метод заменит XXX в 25-й строке, для того чтобы progress bar периодически обновлялась?

Для каждого объекта Activity в приложении Android используется стиль:

Необходимо проверить имеет ли вызываемый процесс разрешение для программного доступа к сервису. Что для этого используется?

     public class MainActivity extends Activity {       @Override       public void onCreate(Bundle savedInstanceState) {       super.onCreate(savedlnstanceState) ;       setContentView(R.layout.main);       getLoaderManager().initLoader(0, null, this);       }      @Override       public Loader<Cursor> onCreateLoader(int id, Bundle args) {       // Create and return a new Loader       }      }     
Что надо добавить в исходный код, чтобы метод onCreateLoader выполнялся при создании нового объекта класса Loader?

Необходимо отобразить данные контент-провайдера в ListView. Какую колонку нужно вернуть как часть записи контент-провайдера?

Необходимо проверить, необходим ли каждый элемент строкового типа приложению. Запуск приложения производится в режиме эмулятора, на языке, установленном по умолчанию. Как осуществить проверку?

Приложение становится менее производительным всякий раз, когда загружается фоновая служба. Данное приложение использует эту фоновую службу. Во время работы службы пользовательский интерфейс перестает отвечать. Почему страдает производительность приложения, когда работает данная служба?

Категории используются для:

NinePatchDrawable – это растровое изображение, которое

К стилям и темам, предлагаемым платформой Android, можно получить доступ через:

Что произойдет в том случае, если элемент <application> и элемент потомок <activity> имеют атрибуты иконок и меток?

     public class MyActivity extends Activity implements OnClickListener {       @Override       public void onCreate(Bundle savedInstanceState) {       setContentView(R.layout.main);       }     }    
Какая проблема проиллюстрирована с помощью данного кода?

Приложение пытается соединиться со службой другого разработчика. Код, отвечающий за освобождение ресурсов, отсутствует. Во время теста приложение отключается из-за недостаточного количества ресурсов. Проблема возникла из-за того, что вы не вызвали:

     Intent intent = new Intent(Intent.ACTION_VIEW);      Uri u = Uri.parse("http://www.google.com");      intent.setData(u);    
Какой код нужно добавить, чтобы запустить браузер и отобразить страницу www.google.com?

В проект импортированы файлы, которые размещены в папке /assets. Однако приложению нельзя ссылаться на данные файлы, используя сгенерированный файл R.java. Файлы можно сделать доступными приложению, если: