2015-08-25 2 views
3

Я использую новый Google играет сервис: детектор штрих-кода, для этого porposue я после этого урока: https://search-codelabs.appspot.com/codelabs/bar-codesdetector.isOperational() всегда ложна на андроид

Но когда я запустить приложение на моем реальном устройстве (Asus Nexus 7) текстовый вид приложения всегда показывает мне «Не удалось установить детектор», и я не знаю, как это сделать> < ...

Здесь некоторый код для быстрой отладки:

public class DecoderBar extends Activity implements View.OnClickListener{ 

private TextView txt; 
private ImageView img; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.layout_decoder); 

    Button b = (Button) findViewById(R.id.button); 
    txt = (TextView) findViewById(R.id.txtContent); 
    img = (ImageView) findViewById(R.id.imgview); 

    b.setOnClickListener(this); 
} 

// [...] 

@Override 
public void onClick(View v) { 

    Bitmap myBitmap = BitmapFactory.decodeResource(getApplicationContext().getResources(),R.drawable.popi); 
    img.setImageBitmap(myBitmap); 

    BarcodeDetector detector = new BarcodeDetector.Builder(getApplicationContext()) 
      .setBarcodeFormats(Barcode.DATA_MATRIX | Barcode.QR_CODE) 
      .build(); 

    if(!detector.isOperational()){ 
     // Always show this message, so, never is operational! 
     txt.setText("Could not set up the detector!"); 
     return; 
    } 

    Frame frame = new Frame.Builder().setBitmap(myBitmap).build(); 
    SparseArray<Barcode> barcodes = detector.detect(frame); 

    Barcode thisCode = barcodes.valueAt(0); 
    txt.setText(thisCode.rawValue); 
} 
} 
+0

Я также столкнулся этот вопрос - Nexus 4 с 5.1.1 CyanogenMod 12.1, и Службы Google Play 8.3.0. Интернет-соединение не было проблемой (работающей и быстрой), доступным хранилищем также не было и все еще получено isOperational всегда false. –

ответ

0

Чтобы использовать API, необходимо иметь подключение к Интернету, у меня было подключение к ADSL, но не разрешено DNS. Исправление этой проблемы заставляет мое приложение работать

2

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

https://developers.google.com/vision/multi-tracker-tutorial

И это отрывок:

В первый раз, что приложение с помощью штрих-кода и/или лицом API, установлен на устройстве, GMS скачивает библиотеки на устройство, чтобы сделать штрих-код и обнаружение лица. Обычно это выполняется установщиком , прежде чем приложение будет запущено в первый раз.

0

Иногда зависимости детекторов загружаются, когда приложение запускается в первый раз, а не при установке приложения. Я тоже столкнулся с той же проблемой, проблема в том, что ваше сетевое соединение слабое или у вас недостаточно свободного места для скачивания, например, 10% от общей площади, хотя загрузка занимает не так много, но загрузка из Google Play Services действительно требует объем хранения и не забудьте очистить кеш (простая проверка попробуйте обновить любое приложение из игрового магазина). Обратитесь к этому Github thread за дополнительной информацией.

3

У меня была эта проблема сейчас. Невозможно обновить службы Google Play. После того, как я использовал то же, что и в учебнике, он работает.

компиляции 'com.google.android.gms: играть-услуги: 7.8+'

+1

попробуйте скомпилировать 'com.google.android.gms: play-services: 7.8.0' -> без символа + –

Смежные вопросы