Метод 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 в файле манифеста.
Вы используете discovery
, прежде чем он будет объявлен в вызове функции.
Кроме того, когда вы объявите его в функции, он будет уничтожен в конце его и не будет доступен в основной объем.
Вы пытаетесь получить к нему доступ, прежде чем вы вызываете функцию 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 использовать его где-нибудь?