此功能可以获得第三方的对自己功能的使用情况,可以知道非法操作!
//下面代码段是获取调用自己方法的人的包名和类名
1.比如一个叫MainActivity内部调用了这个初始化
MainActivity中有调用:ABC.getInstance();
结果:name:com.xx.MainActivity
2.比如从MainActivity进入了DemoActivity
DemoActivity中有调用:ABC.getInstance();
结果:name:com.xx.DemoActivity
文章出处:https://blog.csdn.net/pangzaifei/article/details/70213731
public static ABC getInstance(Context context) { if (mAbc == null) { synchronized (ABC.class) {//同步代码块 if (mAbc == null) { mAbc = new ABC(context); } } } PackageManager packageManager = context.getPackageManager(); try { PackageInfo info = packageManager.getPackageInfo(context.getPackageName(), PackageManager.GET_ACTIVITIES); ActivityInfo[] activities = info.activities; if (activities.length > 0) { for (int i = 0; i < activities.length - 1; i++) { String name = activities[i].name; LogHelper.e("fffpzf", "name:" + name); } } } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); LogHelper.e("fffpzf", "name 异常"); } return mAbc; }