Comment déplacer TelephonyManager à différentes classes puis MainActivity

Headsman:

im décision et APP sur les informations réseau etc. Je suis un problème quand je veux utiliser TelephonyManager dans différentes classes puis ma classe MainActivity. Quand j'ai un code simple dans une classe alors tout fonctionne bien, mais le problème est quand je veux faire une autre classe. Programme compile alors sans aucun problème, mais le PPA se bloque.

Code de travail dans une classe:

MainActivity.java

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final TextView textMCC = findViewById(R.id.mcc);
    textMCC.setText(getMCC());
}
public String getMCC() {
    TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    String networkOperator = telephonyManager.getNetworkOperator();
    return networkOperator.substring(0, 3);
}

Lorsque je tente de diviser ce à deux classes différentes, MainActivity.java et Cell.java l'APP se bloque.

Activité principale:

public class MainActivity extends AppCompatActivity {


 Cell cellex = new Cell();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final TextView textMCC = findViewById(R.id.mcc);
    textMCC.setText(cellex.getMCC());
}
}

Cell.java:

public class Cell {
Context context;
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);

public String getMCC() {
    // TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    String networkOperator = telephonyManager.getNetworkOperator();
    return networkOperator.substring(0, 3);
}
}

Avant d'ajouter la ligne: contexte de contexte, le programme ne compile pas.

Abhilash Bhaduri:

Cela se produit parce que l'activité a méthode getSystemService qui transmet la demande à Context.getSystemService (). Donc, vous devez envoyer contexte de l'intérieur getMCC param ().

Chaîne getMCC (teneur en contexte) {TelephonyManager telephonyManager = context.getSystemService (Context.TELEPHONY_MANAGER_SERVICE); }

Chaîne mcc = cell.getMCC (MainActivity.this);

Je suppose que tu aimes

Origine http://10.200.1.11:23101/article/api/json?id=379004&siteId=1
conseillé
Classement