我们已经为智能手机开发了一个设备和一个应用程序(原生Android)。该设备通过蓝牙低能耗将数据传送到手机中,应用程序将在手机中处理数据。一些用户希望在很长一段时间内一直使用该系统,甚至是几个星期。数据在手机中的传输应该是连续的,不会中断。在使用搭载安卓系统6.0.1的三星盖乐世A5 (2017)进行的测试中,该系统在数小时内都能正常工作。但当应用程序运行较长时间时,手机的操作系统往往会停止应用程序。有时,只有蓝牙被停止。在较老的手机型号和OS5中,例如Galaxy S4,这类问题不会发生。有没有办法保护应用程序,使其不被停止?
发布于 2017-06-02 16:55:20
在android OS6和更高版本中,你必须请求运行时权限,也许这就是问题所在。在你的项目中添加下面的代码
@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;
}
}}
发布于 2017-06-02 16:56:35
这取决于手机是否有预装或正常安装的节电应用程序,该应用程序会在很长一段时间内终止后台操作。Take this app for example
https://stackoverflow.com/questions/44324555
复制相似问题