Android学习笔记--隐藏Activity2016.05
2016-05-31 17:41
387 查看
1、隐藏Activity:
2、获取系统中的Service或者其他信息,context.getSystemService,根据参数获取不同的对象
可以对getSystemService传入不同的参数,然后再获取不同的信息
3、SharedPreferences使用
为了保存软件的设置参数,Android 平台为我们提供了一个SharedPreferences 类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data//shared_prefs 目录下。
获取SharedPreferences对象方法:
对于一个app,可以在manifest.xml中找到其包名,并且使用命令:
4、获取IMEI
5、遍历短信内容
6、打开“设置”界面
7、删除短信方法
遇到一个问题,删除短信时遇到一个小问题,如下:
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命令
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
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories