Java PackageInfo提供名称NotFoundException
我正在寻找使用我的应用程序在我的设备上安装的不同应用程序的首次安装时间。 非常基本的PackageManager->PackageInfo->firstInstallTime字段就足够了,但它总是返回NameNotFoundException,即使我尝试了多个应用程序(正确的)包名Java PackageInfo提供名称NotFoundException,java,android,android-studio,android-package-managers,Java,Android,Android Studio,Android Package Managers,我正在寻找使用我的应用程序在我的设备上安装的不同应用程序的首次安装时间。 非常基本的PackageManager->PackageInfo->firstInstallTime字段就足够了,但它总是返回NameNotFoundException,即使我尝试了多个应用程序(正确的)包名 package com.example.testingpackageinfo; import androidx.appcompat.app.AppCompatActivity; i
package com.example.testingpackageinfo;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.pm.PackageInfoCompat;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
Button button ;
TextView textView;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
button = findViewById(R.id.button);
textView = findViewById(R.id.textView);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
PackageManager pm = context.getPackageManager();
PackageInfo pInfo = pm.getPackageInfo("com.google.android.youtube", 0);
long installTime = pInfo.firstInstallTime;
textView.setText(String.valueOf(installTime));
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
textView.setText("Package Not found");
}
}
});
}
}
试试这个:
private boolean checkInstalledApp(String packageName, PackageManager packageManager) {
try {
packageManager.getPackageInfo(packageName, 0);
return true;
} catch (PackageManager.NameNotFoundException e) {
return false;
}
}