How do I know when an app was last used in Android? Is it possible to determine this? and how to get last used date?
you can use get the usuage of app using UsageStatsManager
Manifest.Java
<uses-permission
android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
MainActivity.Java
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.provider.Settings;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
Button statsBtn;
TextView status;
Context mContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
status = (TextView) findViewById(R.id.status);
mContext = MainActivity.this;
//Check if permission enabled
if (UStats.getUsageStatsList(this).isEmpty()) {
Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
startActivity(intent);
}
statsBtn = (Button) findViewById(R.id.stats_btn);
statsBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// UStats.printCurrentUsageStatus(MainActivity.this);
status.setText(UStats.printUsageStatus(mContext));
}
});
}
}
Ustats.Java
/** * Created by User on 3/2/15. */
public class UStats {
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("M-d-yyyy HH:mm:ss");
public static final String TAG = UStats.class.getSimpleName();
@SuppressWarnings("ResourceType")
public static void getStats(Context context) {
UsageStatsManager usm = (UsageStatsManager) context.getSystemService("usagestats");
int interval = UsageStatsManager.INTERVAL_YEARLY;
Calendar calendar = Calendar.getInstance();
long endTime = calendar.getTimeInMillis();
calendar.add(Calendar.YEAR, -1);
long startTime = calendar.getTimeInMillis();
Log.d(TAG, "Range start:" + dateFormat.format(startTime));
Log.d(TAG, "Range end:" + dateFormat.format(endTime));
UsageEvents uEvents = usm.queryEvents(startTime, endTime);
while (uEvents.hasNextEvent()) {
UsageEvents.Event e = new UsageEvents.Event();
uEvents.getNextEvent(e);
if (e != null) {
Log.d(TAG, "Event: " + e.getPackageName() + "\t" + e.getTimeStamp());
}
}
}
public static List<UsageStats> getUsageStatsList(Context context) {
UsageStatsManager usm = getUsageStatsManager(context);
Calendar calendar = Calendar.getInstance();
long endTime = calendar.getTimeInMillis();
calendar.add(Calendar.YEAR, -1);
long startTime = calendar.getTimeInMillis();
Log.d(TAG, "Range start:" + dateFormat.format(startTime));
Log.d(TAG, "Range end:" + dateFormat.format(endTime));
List<UsageStats> usageStatsList = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, startTime, endTime);
return usageStatsList;
}
public void printUsageStats(List<UsageStats> usageStatsList) {
String value = null;
for (UsageStats u : usageStatsList) {
Log.d(TAG, "Pkg: " + u.getPackageName() + "\t" + "ForegroundTime: "
+ u.getTotalTimeInForeground());
value = "Pkg: " + u.getPackageName() + "\t" + "ForegroundTime: " + u.getTotalTimeInForeground();
}
}
public void printCurrentUsageStatus(Context context) {
printUsageStats(getUsageStatsList(context));
}
public static String printUsageStatus(Context context) {
return printUsageStatss(getUsageStatsList(context));
}
@SuppressWarnings("ResourceType")
private static UsageStatsManager getUsageStatsManager(Context context) {
UsageStatsManager usm = (UsageStatsManager) context.getSystemService("usagestats");
return usm;
}
public static String printUsageStatss(List<UsageStats> usageStatsList) {
String value = null;
for (UsageStats u : usageStatsList) {
Log.d(TAG, "Pkg: " + u.getPackageName() + "\t" + "ForegroundTime: "
+ u.getTotalTimeInForeground());
value = "Pkg: " + u.getPackageName() + "\t" + "ForegroundTime: " + u.getTotalTimeInForeground();
}
return value;
}
}
Use UsageStats
if( mUsageStats.getPackageName().equals("YOUR PACKAGE NAME")){
mUsageStats.getLastTimeUsed();
}
https://developer.android.com/reference/android/app/usage/UsageStats.html#getLastTimeUsed()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With