我们为智能手机开发了设备和应用程序(原生Android)。设备通过Bluetooth Low Energy将数据传输到应用程序处理数据的电话中。一些用户希望在很长一段时间甚至几周内一直使用该系统。传输到手机中的数据应该是连续的,不会中断。 在使用Android OS 6.0.1的三星Galaxy A5(2017)的测试中,结果表明该系统可以正常运行数小时。但是当应用程序运行较长时间时,手机的操作系统往往会停止应用程序。有时,只有蓝牙停止。在较旧的手机型号和OS 5中,例如Galaxy S4,这样的问题不会发生。 有没有办法以不停止的方式保护应用程序?
答案 0 :(得分:0)
在Android OS 6及更高版本中你必须要求运行时权限,也许这就是问题所在。在项目中添加波纹管代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_files);
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.BLUETOOTH},
1);
//..your code...
}
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults)
{
switch (requestCode) {
case 1: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// contacts-related task you need to do.
} else {
Toast.makeText(MainActivity.this, "Permission denied", Toast.LENGTH_SHORT).show();
}
return;
}
}
}
答案 1 :(得分:0)
这取决于手机是否具有预安装或正常安装的省电应用程序,可以长时间杀死后台操作。 Take this app for example