PythonNameError: имя «обнаружение» не определено

Метод getDeviceId () TelephonyManager возвращает уникальный идентификатор устройства, например IMEI для GSM и MEID или ESN для телефонов CDMA. Возвращает null, если идентификатор устройства недоступен.

Код Java

package com.AndroidTelephonyManager; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.telephony.TelephonyManager; import android.widget.TextView; public class AndroidTelephonyManager extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView textDeviceID = (TextView)findViewById(R.id.deviceid); //retrieve a reference to an instance of TelephonyManager TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); textDeviceID.setText(getDeviceID(telephonyManager)); } String getDeviceID(TelephonyManager phonyManager){ String id = phonyManager.getDeviceId(); if (id == null){ id = "not available"; } int phoneType = phonyManager.getPhoneType(); switch(phoneType){ case TelephonyManager.PHONE_TYPE_NONE: return "NONE: " + id; case TelephonyManager.PHONE_TYPE_GSM: return "GSM: IMEI=" + id; case TelephonyManager.PHONE_TYPE_CDMA: return "CDMA: MEID/ESN=" + id; /* * for API Level 11 or above * case TelephonyManager.PHONE_TYPE_SIP: * return "SIP"; */ default: return "UNKNOWN: ID=" + id; } } }

Код Java

<linearlayout android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android"> <textview android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="@string/hello"> <textview android:id="@+id/deviceid" android:layout_height="wrap_content" android:layout_width="fill_parent"> </textview></textview></linearlayout>

Требуется разрешение READ_PHONE_STATE в файле манифеста.

-1
задан nosklo 13 July 2018 в 20:19
поделиться

2 ответа

Вы используете discovery, прежде чем он будет объявлен в вызове функции.

Кроме того, когда вы объявите его в функции, он будет уничтожен в конце его и не будет доступен в основной объем.

0
ответ дан Cyphall 17 August 2018 в 12:10
поделиться

Вы пытаетесь получить к нему доступ, прежде чем вы вызываете функцию zabbix_discovery, которая присваивает ей значение. Даже если вы исправили эту логическую ошибку, вы все равно не сможете получить доступ к переменной discovery, поскольку она является локальной переменной. Вы можете добавить return discovery в конец функции, а затем discovery = zabbix_discovery(pingdom_data) или сделать глобальную переменную. Бывший будет выглядеть примерно так:

discovery = []
def zabbix_discovery(pingdom_data):
    global discovery
    do what you want to do with it
zabbix_discovery(args)

Кроме того, даже когда вы исправляете эти вещи, ваш код будет вызывать еще одну ошибку, потому что вы пытаетесь получить доступ к словарю data в своей функции, которая тоже не имеет значения , Если он назначен где-то вне функции, вы можете легко исправить это, добавив global data в начало вашей функции.

И почему у вас есть pingdom_data в качестве аргумента в вашей функции, если вы 't использовать его где-нибудь?

0
ответ дан PonasM 17 August 2018 в 12:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: