Ich benutze querySummary() -Methode von NetworkStatsManager, um die Datennutzung zu berechnen, es gibt mir richtige Verwendung, aber manchmal wirft es NullPointerException für diese Methode.NullPointerException für die querySummary-Methode bei der Berechnung der Datennutzung
Fehler in UsageTestService:
java.lang.NullPointerException:
at android.os.Parcel.readException (Parcel.java:1626)
at android.os.Parcel.readException (Parcel.java:1573)
at android.net.INetworkStatsSession$Stub$Proxy.getSummaryForAllUid
(INetworkStatsSession.java:355)
at android.app.usage.NetworkStats.startSummaryEnumeration
(NetworkStats.java:330)
at android.app.usage.NetworkStatsManager.querySummary
(NetworkStatsManager.java:166)
at com.test.services.UsageTestService$1.run (UsageTestService.java:172)
Mein Code:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
NetworkStats networkStats = null;
try {
networkStatsManager = (NetworkStatsManager) getApplicationContext().getSystemService(Context.NETWORK_STATS_SERVICE);
networkStats = networkStatsManager.querySummary(0, getSubscriberId(UsageTestService.this, ConnectivityManager.TYPE_MOBILE), 0, System.currentTimeMillis());
} catch (RemoteException e) {
e.printStackTrace();
}
if(networkStats!=null)
{
while (networkStats.hasNextBucket()) {
NetworkStats.Bucket bucket = new NetworkStats.Bucket();
networkStats.getNextBucket(bucket);
int uid = bucket.getUid();
double rx1 = bucket.getRxBytes();
double tx1 = bucket.getTxBytes();
int state1 = bucket.getState();
double totalRxTx1 = rx1+ tx1;
}
}
}
Was wird das Problem sein?
Mögliches Duplikat [? Was für eine Nullpointer ist, und wie kann ich es beheben] (https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) –
@NileshRathod, hier habe ich das Kontrollkästchen if (networkStats! = null) hinzugefügt, dann wird es nur fortgesetzt. –
Wahrscheinlich sind die Daten nicht in allen Geräten verfügbar? – SripadRaj