2017-06-02 107 views
0

我們開發了一款智能手機的設備和應用程序(原生Android)。該設備通過藍牙低功耗將數據傳輸到應用程序處理數據的手機中。有些用戶希望長時間使用系統,甚至幾周。數據傳輸到手機應該連續不間斷。 在使用Android OS 6.0.1的三星Galaxy A5(2017)進行的測試中,結果表明系統可以正常工作數小時。但是當應用程序運行時間較長時,手機的操作系統往往會停止應用程序。偶爾,只有藍牙停止。在較舊的電話型號和OS 5中,例如Galaxy S4不會發生這樣的問題。 有什麼辦法可以保護應用程序不會停止嗎?三星A5停止申請

回答

0

在android操作系統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; 
    } 
} 

}

+0

項目已經有詢問權限的代碼。授予權限。 – Timo

+0

您是否明確要求權限?因爲啓動Android API 23,您需要向用戶請求權限。 – GGWP

0

這取決於如果手機有一個預安裝或正常安裝的電池節電應用程序,殺死後臺操作進行的很長一段時間添加婁代碼。 Take this app for example