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.
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?