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