Я пытаюсь отобразить номера телефонов каждой карты, вставленной в телефон, через приложение, которое я создаю, следующим образом
mSubscriptionManager = SubscriptionManager.from(context);
GetCarriorsInformation();
number = findViewById(R.id.phone_numbers);
for (int i=0; i < Numbers.size(); i++){
number.append(number.getText() + Numbers.get(i) + " , ");
}
Это после получения телефонных номеров и добавления каждого к списку рассылки, как показано ниже
private void GetCarriorsInformation() {
Numbers = new ArrayList<>();
subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
if (subInfoList.size() > 1) {
isMultiSimEnabled = true;
}
for (SubscriptionInfo subscriptionInfo : subInfoList) {
Numbers.add(subscriptionInfo.getNumber());
}
}
Это работает без ошибок, но textView показывает только ''
Что я могу делать не так?
Вот код для входа MainActivity.java
package com.otemainc.securesoccialmedia;
import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private Context context;
private SubscriptionManager mSubscriptionManager;
public static boolean isMultiSimEnabled = false;
public static String defaultSimName;
public static List<SubscriptionInfo> subInfoList;
public static ArrayList<String> Numbers;
TextView number;
@TargetApi(Build.VERSION_CODES.LOLLIPOP_MR1)
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP_MR1)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = this;
setContentView(R.layout.activity_main);
mSubscriptionManager = SubscriptionManager.from(context);
GetCarriorsInformation();
number = findViewById(R.id.phone_numbers);
for(int i=0; i < Numbers.size(); i++) {
number.append(number.getText() + Numbers.get(i) + " , ");
}
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP_MR1)
private void GetCarriorsInformation() {
Numbers = new ArrayList<>();
subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
if (subInfoList.size() > 1) {
isMultiSimEnabled = true;
}
for (SubscriptionInfo subscriptionInfo : subInfoList) {
Numbers.add(subscriptionInfo.getNumber());
}
}
}
Я также добавил эту строку в файл манифеста
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>