Wie Sie die Nutzungsberechtigung programmgesteuert erhalten

Meine App muss @ habZugriffsberechtigung verwenden, um Informationen über die aktuell ausgeführte App auf dem Telefon des Benutzers abzurufen. Ich kann es mithilfe des folgenden Codes mithilfe des folgenden Links erfolgreich implementieren.

Usage Access apps

Hier ist mein Arbeitscode

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);
                         }
                     })
                     .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                         public void onClick(DialogInterface dialog, int which) {
                             // do nothing
                             dialog.dismiss();
                         }
                     })
                     .setIcon(android.R.drawable.ic_dialog_alert)
                     .create();

             alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
             alertDialog.show();
         }                      else {
             Intent intent = new Intent(this, PackageService.class);
             startService(intent);
             finish();
         }
     }else
     {
         Intent intent = new Intent(this, PackageService.class);
         startService(intent);
         finish();
     }
 }

Dieser Code zeigt einem Benutzer einen Warnhinweis an, dass eine Berechtigung für den Verwendungszugriff erforderlich ist, und führt den Benutzer zum Einstellungsbildschirm, von dem aus er aktiviert werden kann.

Alles funktioniert perfekt damit. Das Einzige, was ich will, ist, dassWie kann ich meiner App standardmäßig die Zugriffsberechtigung erteilen, ohne dass ein Dialogfeld angezeigt wird? an Benutzer, bis er / sie es nicht mehr manuell ausschaltet?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage