一.关于6.0以后的权限问题:
因为android 6.0以后添加了权限问题,需要开发人员自己在代码中配置请求权限,所以这里举一个简单例子处理请求权限的问题
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>二.开发IP拨号器
开发拨号器需要请求如上权限,首先需要在清单文件中配置该权限,然后自己在代码中注册该权限。
三.具体代码如下
1.注册权限代码:
// 允许程序监视、修改有关拨出电话PROCESS_OUTGOING_CALLS
private static final int PROCESS_OUTGOING_CALLS = 1;
private static String[] OUTGOING_CALLS = {
Manifest.permission.PROCESS_OUTGOING_CALLS,
};
/**
* Checks if the app has permission to PROCESS_OUTGOING_CALLS
*
* If the app does not has permission then the user will be prompted to grant permissions
*
* @param activity
*/
public static void verifyStoragePermissions(Activity activity) {
// Check if we have PROCESS_OUTGOING_CALLS permission检查应用是否拥有监听修改播出电话的权限
int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.PROCESS_OUTGOING_CALLS);
if (permission != PackageManager.PERMISSION_GRANTED) {
// We don't have permission so prompt the user如果我们没有权限就弹出提示请求用户赋予权限
ActivityCompat.requestPermissions(activity, OUTGOING_CALLS, PROCESS_OUTGOING_CALLS);
}
}
2.保存ip电话号码的代码
//我是在MainActivity的onCreate完成的,
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt= (Button) findViewById(R.id.button);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//点击后弹出权限请求提示,也可以在onCreate中请求,打开activity就发出请求
verifyStoragePermissions(MainActivity.this);
EditText ed= (EditText) findViewById(R.id.editText);
String ipn=ed.getText().toString();
SharedPreferences sp=getSharedPreferences("ipnumber",MODE_PRIVATE);
sp.edit().putString("ipnumber",ipn).commit();
}
});
}
3.自定义广播接受者重写onReceive()方法
public void onReceive(Context context, Intent intent) {
String sip=getResultData();
SharedPreferences sharedPreferences=context.getSharedPreferences("ipnumber",Context.MODE_PRIVATE);
String ipnumber=sharedPreferences.getString("ipnumber","");
setResultData(ipnumber+sip);
abortBroadcast();
}
四.关于权限处理的一些相关链接
//Android M (API23) 中对权限的授权处理
http://www.tuicool.com/articles/V3eErq
//请求读写权限
http://blog.youkuaiyun.com/ynwjcf/article/details/52153372
//权限介绍
http://blog.youkuaiyun.com/zhangmiaoping23/article/details/50053715