一、排坑
AndroidStudio非法字符: '\ufeff'
将文件格式改为以UTF-8无BOM格式编码
Sublime Text 保存时 CodeFormatter file is scratch
ctrl+shift+p打开命令面板,remove package
Android Studio内中文乱码
sublime打开并保存
二、运行时权限
AndroidManifest.xml文件
<uses-permission android:name="android.permission.CALL_PHONE"/>
发短信案例
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button bt=(Button)findViewById(R.id.send); bt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.SEND_SMS)!= PackageManager.PERMISSION_GRANTED){ //申请权限 ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.SEND_SMS},1); }else { //把动作告诉系统 send(); } } }); } public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode){ case 1: //发短信权限回调 if (grantResults[0]==PackageManager.PERMISSION_GRANTED){ send(); }else { //提示用户权限未被授予 Log.d("MainActivity","未授予发短信权限"); } break; } } public void send(){ //拿到用户输入的号码和内容 EditText et_phone = (EditText) findViewById(R.id.et_phone); EditText et_content = (EditText) findViewById(R.id.et_content); String phone = et_phone.getText().toString(); String content = et_content.getText().toString(); //1.获取短信管理器 SmsManager sm = SmsManager.getDefault(); //2.切割短信,把长短信分成若干个小短信 ArrayList<String> smss = sm.divideMessage(content); //3.for循环把集合中所有短信全部发出去 for (String string : smss) { sm.sendTextMessage(phone, null, string, null, null); } }
危险权限
三、点击事件的四种写法
第一种
-
定义一个MyListener实现onClickListener接口
Button bt1 = (Button) findViewById(R.id.bt1); bt1.setOnClickListener(new MyListener());
第二种
-
定义一个匿名内部类实现onClickListener接口
Button bt2 = (Button) findViewById(R.id.bt2); bt2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { System.out.println("第二种"); } });
第三种
-
让当前activity实现onClickListener接口
Button bt3 = (Button) findViewById(R.id.bt3); bt3.setOnClickListener(this);
第四种
-
给Button节点设置onClick属性,
android:onClick="click"
-
然后在activity中定义跟该属性值同名的方法
public void click(View v){ System.out.println("第四种"); }
参考链接:https://www.jianshu.com/p/b9665348a694