您的位置:首页 > 移动开发 > Android开发

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

2016-05-31 17:41 387 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android