相关疑难解决方法(0)

获取已安装的应用程序

我正在试图弄清楚如何获得已安装应用的大小.
什么已经失败:
- new File('/data/app/some.apk')报告不正确的大小
- PackageManager.getPackageSizeInfo(String packageName, IPackageStatsObserver observer)- @hide并依赖于一些模糊IPackageStatsObserver的结果,所以我不能通过反射调用它.

android

18
推荐指数
3
解决办法
2万
查看次数

如何以编程方式获取使用率访问权限

我的应用程序需要具有使用权限访问权限才能获得有关用户手机上当前正在运行的应用程序的信息.我可以使用以下代码在以下链接的帮助下成功实现它.

用法访问应用

这是我的工作代码

public void showDialog()
 {
     if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {

         @SuppressWarnings("WrongConstant")
         UsageStatsManager usm = (UsageStatsManager) getSystemService("usagestats");
         long time = System.currentTimeMillis();
         List<UsageStats> appList = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,
                 time - 1000 * 1000, time);
         if (appList.size()==0)
         {
             AlertDialog alertDialog = new AlertDialog.Builder(this)
                     .setTitle("Usage Access")
                     .setMessage("App will not run without usage access permissions.")
                     .setPositiveButton("Settings", new DialogInterface.OnClickListener() {
                         @TargetApi(Build.VERSION_CODES.LOLLIPOP)
                         public void onClick(DialogInterface dialog, int which) {
                             // continue with delete
                             Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
                            // intent.setComponent(new ComponentName("com.android.settings","com.android.settings.Settings$SecuritySettingsActivity"));
                             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                             startActivityForResult(intent,0);
                         }
                     }) …
Run Code Online (Sandbox Code Playgroud)

android usagestatsmanager android-security

9
推荐指数
1
解决办法
1万
查看次数