股渣的博客

至繁归于至简

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

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
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dxddxd1987/article/details/51547736
文章标签: android
个人分类: Android
上一篇个人修养
下一篇反编译零碎
想对作者说点什么? 我来说一句

Android学习笔记

2011年09月08日 1007KB 下载

android 学习笔记doc

2011年11月12日 118KB 下载

android JNI 学习笔记.doc

2012年03月03日 37KB 下载

android 学习笔记

2011年08月11日 3.79MB 下载

android service 学习笔记(上)

2011年05月24日 322KB 下载

没有更多推荐了,返回首页

关闭
关闭