如何将 TelephonyManager 移动到与 MainActivity 不同的 class
How to move TelephonyManager to different class then MainActivity
关于网络信息等的即时制作和APP
当我想在不同的 class 和 MainActivity class 中使用 TelephonyManager 时遇到问题。
当我在一个 class 中有一个简单的代码时,一切正常,但问题是当我想制作另一个 class 时。然后程序编译没有问题,但是APP崩溃了。
合二为一的工作代码class:
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);
}
当我尝试将其拆分为两个不同的 class 时,MainActivity.java 和 Cell.java 应用程序崩溃了。
主要Activity:
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);
}
}
在添加行:Context context 之前,程序没有编译。
发生这种情况是因为 Activity 具有将请求转发到 Context.getSystemService() 的方法 getSystemService。所以你必须在 getMCC().
中发送参数 Context
String getMCC(上下文内容){
TelephonyManager telephonyManager = context.getSystemService(Context.TELEPHONY_MANAGER_SERVICE);
}
字符串 mcc = cell.getMCC(MainActivity.this);
关于网络信息等的即时制作和APP 当我想在不同的 class 和 MainActivity class 中使用 TelephonyManager 时遇到问题。 当我在一个 class 中有一个简单的代码时,一切正常,但问题是当我想制作另一个 class 时。然后程序编译没有问题,但是APP崩溃了。
合二为一的工作代码class:
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);
}
当我尝试将其拆分为两个不同的 class 时,MainActivity.java 和 Cell.java 应用程序崩溃了。
主要Activity:
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);
}
}
在添加行:Context context 之前,程序没有编译。
发生这种情况是因为 Activity 具有将请求转发到 Context.getSystemService() 的方法 getSystemService。所以你必须在 getMCC().
中发送参数 ContextString getMCC(上下文内容){ TelephonyManager telephonyManager = context.getSystemService(Context.TELEPHONY_MANAGER_SERVICE); }
字符串 mcc = cell.getMCC(MainActivity.this);