|
import android.Manifest.permission.PACKAGE_USAGE_STATS |
|
import android.app.AppOpsManager |
|
import android.app.usage.UsageStatsManager |
|
import android.content.Context |
|
import android.content.pm.PackageManager.PERMISSION_GRANTED |
|
import android.os.Build.VERSION |
|
import android.os.Build.VERSION_CODES |
|
import android.os.Bundle |
|
import android.support.v7.app.AppCompatActivity |
|
import android.util.Log |
|
import java.util.Calendar |
|
|
|
class MainActivity : AppCompatActivity() { |
|
|
|
override fun onCreate(savedInstanceState: Bundle?) { |
|
super.onCreate(savedInstanceState) |
|
setContentView(R.layout.activity_main) |
|
|
|
val appOps = getSystemService(Context.APP_OPS_SERVICE) as AppOpsManager |
|
val mode = appOps.checkOpNoThrow(AppOpsManager.OPSTR_GET_USAGE_STATS, |
|
android.os.Process.myUid(), packageName) |
|
val granted: Boolean |
|
if (mode == AppOpsManager.MODE_DEFAULT) { |
|
granted = (checkCallingOrSelfPermission(PACKAGE_USAGE_STATS) == PERMISSION_GRANTED) |
|
} else { |
|
granted = (mode == AppOpsManager.MODE_ALLOWED); |
|
} |
|
|
|
val usm = getSystemService(USAGE_STATS_SERVICE) as UsageStatsManager |
|
val calendar = Calendar.getInstance() |
|
val toTime = calendar.timeInMillis |
|
calendar.add(Calendar.YEAR, -1) |
|
val fromTime = calendar.timeInMillis |
|
val queryUsageStats = usm.queryUsageStats(UsageStatsManager.INTERVAL_YEARLY, fromTime, toTime) |
|
|
|
Log.d("MainActivity", "mode: $mode, granted = $granted, usageStatsSize: ${queryUsageStats.size}") |
|
} |
|
} |