关闭

Android学习笔记--隐藏Activity2016.05

标签: android
179人阅读 评论(0) 收藏 举报
分类:

1、隐藏Activity:

PackageManager packageManager = getPackageManager();
ComponentName componentName = new ComponentName(this,MainActivity.class);
  packageManager.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);//隐藏图标

2、获取系统中的Service或者其他信息,context.getSystemService,根据参数获取不同的对象

public void myTest(Context context)
 { 
     List lstRS = new ArrayList(); 
     ActivityManager acMa = (ActivityManager)context.getSystemService(ACTIVITY_SERVICE); 
     if (acMa != null) 
     { 
         lstRS = acMa.getRunningServices(500); 
         for (int i = 0; i < lstRS.size(); i++) 
         {
             Log.i(TAG, lstRS.get(i).service.getClassName()); 
         }
     }
 }
  • 可以对getSystemService传入不同的参数,然后再获取不同的信息

3、SharedPreferences使用

为了保存软件的设置参数,Android 平台为我们提供了一个SharedPreferences 类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data//shared_prefs 目录下。
获取SharedPreferences对象方法:

SharedPreferences pre = Context.getSharedPreferences(String name,int mode);

对于一个app,可以在manifest.xml中找到其包名,并且使用命令:

adb pull /data/data//shared_prefs/preferences名称.xml,可以把此xml拉到本地

4、获取IMEI

      TelephonyManager teMa =(TelephonyManager)context.getSystemService(TELEPHONY_SERVICE);
        if (teMa != null) {
                Log.i(TAG, teMa.getDeviceId().toString());
        }

5、遍历短信内容

        ContentResolver contentResolver = context.getContentResolver();
        Cursor cursor = contentResolver.query(Uri.parse("content://sms"), null, null, null, "date");
        Log.i(TAG, "after contentResolver"+cursor);
        while(cursor != null && cursor.moveToNext()){
            Log.i(TAG, "while...");
            String number = cursor.getString(cursor.getColumnIndex("address"));
            String name = cursor.getString(cursor.getColumnIndex("person"));
            String body = cursor.getString(cursor.getColumnIndex("body"));
            //这里有个问题问题,就是说如果name为null,导致Log.i调用会失败
            //Log.i(TAG, name);
            number = number + name + body;
            if(number != null)
                Log.i(TAG, number);
        }

6、打开“设置”界面

    private void restartSetting(Context context, Intent intent){
        Intent intent2 = context.getPackageManager().getLaunchIntentForPackage("com.android.settings");
        intent2.setFlags(intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent2);
    }

7、删除短信方法
遇到一个问题,删除短信时遇到一个小问题,如下:

ContentResolver contentResolver = context.getContentResolver();
//这里会提示报错,不能自动识别delete函数
contentResolver.delete(Uri.parse(content://sms/100), null, null);
而下面这样却没有问题......
context.getContentResolver().delete(Uri.parse("content://sms/100"), null, null);

8、把app安装到system/app目录
由于必须在系统目录下,才会有一些权限,所以需要把app安装到目标权限
首先,手机要root,并且能对system/app目录读写,即执行su命令成功,或者adb remount也可以对系统目录读写
把xxx.apk拷贝到scard目录:adb push xxx.apk /scard/
修改权限,一定要修改为可执行权限:chmod 777 /scard/xxx.apk
cp /scard/xxx.apk /system/app/xxx.apk
重新启动手机,即可实现安装到系统目录
此外,存在system/app下的apk,除了重启外,还有一个pm命令

pm install xxx.apk
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:23938次
    • 积分:562
    • 等级:
    • 排名:千里之外
    • 原创:29篇
    • 转载:5篇
    • 译文:1篇
    • 评论:0条
    文章分类