我想迎合在果冻豆版本及以下版本上运行的设备以及Jelly Bean以上的版本.
我的方法应该根据应用程序ID获取所有应用程序的应用程序使用/流量.请注意rx = Long.parseLong(String.valueOf(id));第一个if子句中的这一行,该子句适用于运行版本小于或等于Jelly Bean的设备.
基于其ID的已安装应用程序的数据使用是使用using获得的,TrafficStats.getUidTxBytes(uid)但仅在4.3中返回值0,但是,else子句使用TrafficStats.getUidTxBytes(uid)在5以上版本中准确检索每个应用程序的app使用情况.
我特别关注if子句,它适用于运行android版本低于5的设备,例如在这种情况下4.3(Jelly Bean)
public void recordSnapshot(Context context)
{
TinyDB settings = new TinyDB(context);
int boot_id = settings.getInt(AppPreferences.BOOT_ID);
PackageManager pm = context.getPackageManager();
for (ApplicationInfo app : pm.getInstalledApplications(0))
{
String androidOS = Build.VERSION.RELEASE;
int currentapiVersion = android.os.Build.VERSION.SDK_INT;
long tx = 0;
long rx = 0;
int uid = app.uid;
if(currentapiVersion <= Build.VERSION_CODES.JELLY_BEAN)
{
File dir = new File("/proc/uid_stat/");
String[] children = dir.list();
List<Integer> uids = new …Run Code Online (Sandbox Code Playgroud) 在将double加到字符串并尝试格式化后尝试获取两位小数时,我遇到了一个小问题
pieChart.setCenterText("$" + "" + "" +String.format( "% 1$ .2f", Double.toString(dataCost),""));
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我改进上面的代码行,以便它可以显示到两个小数位?你还会注意到我试图在美元符号和值之间留一个空格
当我尝试通过usb调试和Android应用程序到外部设备时,我有一个小问题.我一直收到错误"警告:调试信息可能不可用.请使用ADB关闭其他应用程序:监视器,DDMS,Eclipse重新启动ADB集成并再次尝试等待进程:"
我已经尝试在任务管理器中停止adb.exe,关闭android工作室并重新启动,取出电缆并将其放回并转到工具=> android uncheck adb整合然后重新检查它.一切都无济于事
我正在使用greenDAO并且我已经成功生成了所有必需的类和实体,我可以看到我的表已经创建了,但是在更换行的断点之后,我收到一个错误告诉我"没有这样的表存在错误".
try {
appTimeUsageDao.insertOrReplace(appStats);
//} catch (DaoException e) {
} catch (Exception e) {
Log.e("Error", "Some exception occurred", e);
Log.e("APP_TAG", Log.getStackTraceString(e));
}
Run Code Online (Sandbox Code Playgroud) 有谁知道如何select * from table在greenDAO中进行简单操作并将其放入实体中?我对此做了一些研究,我无法得到任何简单的例子.这是我到目前为止:
public void storeAppTimeUsageData(AppTimeUsage stats) {
List<AppTimeUsage> items = new ArrayList<>();
//appTimeUsageDao = DeviceInsightApp.getSession(this, true).getAppTimeUsageDao();
try {
// master
appTimeUsageDao.insertOrReplace(stats);
//} catch (IOException e) {
} catch (Exception e) {
Log.e("Error", "Some exception occurred", e);
Log.e("APP_TAG", "STACKTRACE");
Log.e("APP_TAG", Log.getStackTraceString(e));
}
String sql = "SELECT * FROM APP_TIME_USAGE ";
Cursor c = appTimeUsageDao.getDatabase().rawQuery(sql, null);
int offset = 0;
int d ;
int cd ;
String e = "";
while (c.moveToNext()) {
AppTimeUsage atu AppTimeUsage(
c.getLong(0);
//long …Run Code Online (Sandbox Code Playgroud) 我已经弄清楚如何使用下面的方法将 X 轴值设置为显示在底部而不是顶部。我现在遇到的问题是,我的 Y 轴值同时显示在左侧和右侧,而我只希望它们显示在图表的左侧。
if (response.isSuccessful()) {
// Reload data source
Items = new ArrayList<>();
Items.clear();
Items.addAll(response.body());
//currentReportingGroup = Items.get(0).ReportingGroup;
//ItemsAdapter.notifyDataSetChanged();
Log.i(TAG, "onResponse: ");
//load(view);
BarChart chart = (BarChart) aq.id(R.id.chart).getView();
XAxis xAxisChart = chart.getXAxis();
YAxis yAxisChart = chart.getAxisLeft();
//yAxisChart.setValueFormatter(new MyAxisValueFormatter());
// yAxisChart.setPosition(YAxis.YAxisLabelPosition.);
xAxisChart.setPosition(XAxis.XAxisPosition.BOTTOM);
BarData data = new BarData(getXAxisValues(), getDataSet());
chart.setData(data);
chart.setDescription("");
chart.animateXY(2000, 2000);
chart.invalidate();
}
Run Code Online (Sandbox Code Playgroud) 有谁知道如何删除greenDao中表的所有内容.我不想删除实际的表,只是删除相当于sql truncate语句的内容.
问候