1.开启远程服务和远程广播权限
- 广播Example
应用A--->应用B发广播
Intent intent = new Intent();
intent.setAction("com.test.demo");
//8.0以上注册自定义静态广播发送时,要加上包名和指定接收器
intent.setComponent(new ComponentName("com.example.myapplication",com.example.myapplication.Receiver"));
sendBroadcast(intent,"com.permission.Receiver");
或者 sendBroadcast(intent);
应用A的清单文件中(使用并声明权限)
<uses-permission android:name ="com.permission.Receiver"/>
<permission android:name ="com.permission.Receiver"
android:protectionLevel = "signatureOrSystem"
/>
应用B的清单文件中(使用权限)
<uses-permission android:name ="com.permission.Receiver"/>
- 服务 Example
应用A--->应用B开启服务
Intent intent = new Intent();
intent.setAction("com.gsq.service1");
intent.setClassName("com.example.demo","com.example.demo.MyService1"");
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){
startForegroundService(intent);
}else{
startService(intent);
}
应用A的清单文件中(使用权限)
<uses-permission android:name ="com.gsq.permission.service1"/>
应用B的清单文件中(声明权限)
<permission android:name ="com.gsq.permission.service1"
android:protectionLevel = "signatureOrSystem"
/>
备注:
1)远程广播和服务清单文件中自定义的action,开启服务或广播时
intent.setAction("action");里面的action和清单文件中的action不一样的话,也能收到广播或者服务;
intent.setAction("action");和收到广播或者服务时 intent.getAction("action"); 中的值是一样的;
android8.0以上远程广播静态注册是可以收到的
2)android8.0以上应用内自定义和系统广播静态注册是收不到的;
2. 用Html 的CSS标签样式设置TextView样式
@RequiresApi(api = Build.VERSION_CODES.N)
public void setHtmlText(){
String formattedText = getString(R.string.content);
Spanned spannedHtml = Html.fromHtml(formattedText, Html.FROM_HTML_MODE_COMPACT);
SpannableStringBuilder htmlBuilder = new SpannableStringBuilder(spannedHtml);
TextView content = findViewById(R.id.content);
content.setText(htmlBuilder);
}
参考 :1)https://blog.youkuaiyun.com/asdf717/article/details/51850002