Android 小的知识片

1、TextView 内容过长时的省略和滚动

  android:singleline="true", // 单行

  android:ellipsize=""  ,    // start   middle   end    省略的位置

       android: marqueeRepeatLimit=""      // marquee 跑马灯   marquee_forever一直滚动

2、调用系统自带的工具传输文件  

      intent.setAction(Intent.ACTION_SEND).setType("*/*").putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)).

      调用蓝牙传输:

  setAction(Intent.ACTION_BLUETOOTH);

3、Intent

  显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的。

  隐式Intent:通过Intent Filter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间。

     setType和setData方法会清空彼此,android提供了一个setDataAndType()方法解决  

view plain copy to clipboard print ?
  1. public Intent setData(Uri data) { 
  2.         mData = data; 
  3.         mType = null
  4.         return this
  5.     } 
view plain
  1. public Intent setType(String type) { 
  2.         mData = null
  3.         mType = type; 
  4.         return this
  5.     } 

4、 ActionBar:
setDisplayHomeAsUpEnabled(boolean enable)  是否显示返回图标    
   public boolean onOptionsItemSelected(MenuItem item) {
       case android.R.id.home:

setDisplayShowTitileEnabled()  ...


5、 自定义Theme:
android:elevation   ActionBar阴影的宽度   @null没有
android:colorPrimaryDark       屏幕最上面状态栏
android:homeAsUpIndicator          actionBar返回箭头   @drawable/ic_arrow_back_24dp
android:actionOverFlowButtonStyle       actionBar
    

    <!-- Action bar overflow menu icon. -->
    <style name="BlacklistActionBarOverflowQP" parent="@android:style/Widget.Material.Light.ActionButton.Overflow">
        <item name="android:src">@drawable/ic_menu_overflow_lt</item>
    </style>


6、 Android xliff     XML Localization Interchange File Format: xml本地数据交换格式

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="mms_size_expiry">"Message size:&#160;<xliff:g id="COUNT">%1$d</xliff:g>&#160;KB,&#160;&#160;&#160;Expires:&#160;<xliff:g id="TIME">%2$s</xliff:g>"</string>

mContext.getString(R.string.mms_size_expiry, size, expiry)

%n$s   n表示第几个参数, s是字符串
%n$ms     m表示的总长度,如果字符串长度大于m,则显示字符串,如果小于,则在字符串后显示相差个数的空格
%n$md     m填0
%n$mf     m=2.3  格式00.000


7、 获取对短信操作的权限:
Android5.0对于短信的插入和修改权限进行控制,只有系统默认短信应用才能对短信进行操作。权限管理类:

AppOpsManager.java  AppOpsService.java
// 获取权限:

PackageManager packageManager = context.getPackageManager();
AppOpsManager appOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
PackageInfo info = packageManager.getPackageInfo(PACKAGE_NAME, PackageManager.GET_UNINSTALLED_PACKAGES);
boolean isIgnored = AppOpsManager.MODE_IGNORED == appOpsManager.checkOp(AppOpsManager.OP_WRITE_SMS, info.applicationInfo.uid, PACKAGE_NAME);
if (isIgnored) {
   // 开启
   appOpsManager.setMode(AppOpsManager.OP_WRITE_SMS, info.applicationInfo.uid, PACKAGE_NAME, AppOpsManager.MODE_ALLOWED);
}

if (isIgnored) {
   // 关闭
   appOpsManager.setMode(AppOpsManager.OP_WRITE_SMS, info.applicationInfo.uid, PACKAGE_NAME, AppOpsManager.MODE_IGNORED);
}

Permission;
    <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" />

8、 更改系统默认短信应用:
Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT)
intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, selfPackageName);
startActivity(intent);

Telephony.Sms.getDefaultSmsPackage(Context context)  // 获取默认短信应用的packageName




你可能感兴趣的:(android,theme,XLIFF,短信权限的获取)