Я пытаюсь выяснить использование данных на Android по временному интервалу с помощью приведенного ниже кода, но для получения идентификатора подписчика требуется разрешение READ_PHONE_STATE
. Есть ли другой способ получения данных за определенный промежуток времени, например, ежедневно, еженедельно или ежемесячно, без запроса разрешения?
NetworkStatsManager networkStatsManager1 = (NetworkStatsManager) getApplicationContext().getSystemService(Context.NETWORK_STATS_SERVICE);
NetworkStats.Bucket bucket1 = null;
try {
bucket1 = networkStatsManager.querySummaryForDevice(ConnectivityManager.TYPE_MOBILE,
getSubscriberId(this, ConnectivityManager.TYPE_MOBILE),
startTimeMillis,
System.currentTimeMillis());
} catch (RemoteException e) {
}
private String getSubscriberId(Context context, int networkType) {
if (ConnectivityManager.TYPE_MOBILE == networkType) {
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
return tm.getSubscriberId();
}
return "";
}