Android Manager

来源:互联网 发布:淘宝消保金怎么退 编辑:程序博客网 时间:2024/05/23 01:59

AssetManager

assets资源目录中的文件只能读不能写

AssetManager assets = getAssets();InputStream in = assets.open("filename");
@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    //1. 获取到assert 目录下的db 文件    AssetManager assetManager = getAssets();    InputStream is = assetManager.open("myuser.db");    //将文件拷贝到    /data / data / com.itheima.android.asserts.sqlite / databases / myuser.db    //如果databases 目录不存在则创建    File file = new File("/data/data/com.itheima.android.asserts.sqlite/databases");    if (!file.exists()) {        file.mkdirs();    }    FileOutputStream fos = new FileOutputStream(new File(file, "myuser.db"));    byte[] buff = new byte[1024 * 8];    int len = -1;    while ((len = is.read(buff)) != -1) {        fos.write(buff, 0, len);    }    fos.close();    is.close();    //访问数据库    SQLiteDatabase database = openOrCreateDatabase("myuser.db", MODE_PRIVATE,            null);    String sql = "select c_name from t_user";    Cursor cursor = database.rawQuery(sql, null);    while (cursor.moveToNext()) {        String string = cursor.getString(0);        Log.d("tag", string);    }    cursor.close();    database.close();}

SmsManager

SmsManager manager = SmsManager.getDefault();ArrayList<String> messages = manager.divideMessage("message");manager.sendMultipartTextMessage("18801911161",null,messages,null,null);for (String message : messages){    manager.sendTextMessage("18801911161",null,message,null,null);}Object[] objects = (Object[]) intent.getExtras().get("pdus");for (Object obj : objects){    SmsMessage sms = SmsMessage.createFromPdu((byte[]) obj);    String address = sms.getOriginatingAddress();//来电号码    String body = sms.getMessageBody();//短信内容}

FragmentManager

TelephoneManager

WindowManager

flags

flag 说明 FLAG_NOT_TOUCH_MODAL FLAG_NOT_FOCUSABLE FLAG_SHOW_WHEN_LOCKED

type

flag 说明 TYPE_SYSTEM_OVERLAY TYPE_SYSTEM_ERROR
Window window = getWindow();WindowManager.LayoutParams layoutParams = window.getAttributes();window.setAttributes(layoutParams);WindowManager manager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);WindowManager.LayoutParams params = new WindowManager.LayoutParams();params.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;// 焦点params.height = WindowManager.LayoutParams.WRAP_CONTENT;params.width = WindowManager.LayoutParams.WRAP_CONTENT;params.format = PixelFormat.TRANSLUCENT;manager.addView(view,params);manager.removeView(view);manager.updateViewLayout(view,params);

Window

PhoneWindow

NotificationManager

WifiManager

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);WifiInfo info = wifi.getConnectionInfo();String macAddress = info.getMacAddress();

DevicePolicyManager

PackageManager

PackageManager pm = getPackageManager();pm.getLaunchIntentForPackage("packageName");PackageInfo packageInfo = pm.getPackageInfo(getPackageName(), 0);String versionName = packageInfo.versionName;int versionCode = packageInfo.versionCode;List<PackageInfo> installedPackages = pm.getInstalledPackages(0);

LayoutManager

ActivityManager

getRunningAppProcesses()
killBackgroundProcesses()
getRunningServices()
getRunningTasks()
getMemoryInfo()
getMemoryClass() 获取分配的内存大小
getLargeMemoryClass() 获取分配的最大内存

//进程管理器/任务管理器ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);manager.getRunningAppProcesses();manager.killBackgroundProcesses("packageName");manager.getRunningServices(50);List<ActivityManager.RunningTaskInfo> tasks = manager.getRunningTasks();ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();manager.getMemoryInfo(memoryInfo);int memory = manager.getMemoryClass();int largeMemory = manager.getLargeMemoryClass();

ConnectivityManager

ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context
.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;

监听网络连接变化

<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>

LocalBroadcastManager

PowerManager

AlarmManager

设置定时任务

StorageManager

BatteryManager

EXTRA_STATUS 充电状态
BATTERY_STATUS_CHARGING 正在充电
BATTERY_STATUS_FULL 充满电
EXTRA_PLUGGED 充电方式
BATTERY_PLUGGED_USB USB充电
BATTERY_PLUGGED_AC 交流充电器充电
EXTRA_LEVEL
EXTRA_SCALE

ACTION_BATTERY_CHANGED 电量改变广播
ACTION_POWER_CONNECTED 连接设备
ACTION_POWER_DISCONNECTED 断开连接
ACTION_BATTERY_LOW 低电量
ACTION_BATTERY_OKAY 离开低电量

判断当前充电状态

IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);Intent batteryStatus = registerReceiver(null, ifilter);//获取充电状态int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||        status == BatteryManager.BATTERY_STATUS_FULL;//获取充电方式int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;

监测充电状态的改变

17.2.1. 注册receiver

<receiver android:name=".PowerConnectionReceiver">    <intent-filter>        <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>        <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>    </intent-filter></receiver>

获取当前电量

int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

float batteryPct = level / (float)scale;

监测电量的有效改变

<receiver android:name=".BatteryLevelReceiver">    <intent-filter>        <action android:name="android.intent.action.ACTION_BATTERY_LOW"/>        <action android:name="android.intent.action.ACTION_BATTERY_OKAY"/>    </intent-filter></receiver>

DownloadManager

0 0
原创粉丝点击