2016-08-12 36 views
0

我在我的應用程序中使用ACTION_USER_PRESENT廣播接收器, 我的問題是:我只有當我的應用程序處於暫停狀態時纔得到BroadCastReceiver。ACTION_USER_PRESENT不工作,當應用程序不在後臺

這裏是我的清單:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 


<receiver 
      android:name=".utils.receivers.ReminderBroadcastReceiver" 
      android:enabled="true" 
      android:exported="true" /> 
     <receiver android:name=".utils.receivers.UserPresentBroadcastReceiver"> 
      <intent-filter> 
       <action android:name="android.intent.action.USER_PRESENT" /> 
      </intent-filter> 
     </receiver> 

我的收款人:

public class UserPresentBroadcastReceiver extends BroadcastReceiver { 


    @Override 
    public void onReceive(Context context, Intent intent) { 

     /*Sent when the user is present after 
     * device wakes up (e.g when the keyguard is gone) 
     * */ 

     // MY STUFF - which works when my app is on paused state, but not when it is closed 

    } 

} 

上午Marshmallo 6.0

任何幫助運行?

+0

你有沒有得到運行時間permision? –

+0

不,我沒有得到任何權限查詢。 –

+0

我正在爲日曆創建事件,這個東西也沒有要求發泄,但最終在PERMISSION DENIAL的例外情況下,如果我手動授予權限,它可以正常工作......但在這種情況下沒有此類選項可用! –

回答

0

獲得Marshmallo 6.0或greator的運行時權限。

public class RuntimePermission extends AppCompatActivity { 

     private static final int REQUEST_RUNTIME_PERMISSION = 123; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 

      if (CheckPermission(RuntimePermission.this, Manifest.permission.READ_PHONE_STATE)) { 
       // you have permission go ahead 

      } else { 
       // you do not have permission go request runtime permissions 
       RequestPermission(RuntimePermission.this, Manifest.permission.READ_PHONE_STATE, REQUEST_RUNTIME_PERMISSION); 
      } 
     } 

     @Override 
     public void onRequestPermissionsResult(int permsRequestCode, String[] permissions, int[] grantResults) { 

      switch (permsRequestCode) { 

       case REQUEST_RUNTIME_PERMISSION: { 
        if (grantResults.length > 0 
          && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
         // you have permission go ahead 

        } else { 
         // you do not have permission show toast. 
        } 
        return; 
       } 
      } 
     } 

     public void RequestPermission(Activity thisActivity, String Permission, int Code) { 
      if (ContextCompat.checkSelfPermission(thisActivity, 
        Permission) 
        != PackageManager.PERMISSION_GRANTED) { 
       if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity, 
         Permission)) { 
       } else { 
        ActivityCompat.requestPermissions(thisActivity, 
          new String[]{Permission}, 
          Code); 
       } 
      } 
     } 

     public boolean CheckPermission(Context context, String Permission) { 
      if (ContextCompat.checkSelfPermission(context, 
        Permission) == PackageManager.PERMISSION_GRANTED) { 
       return true; 
      } else { 
       return false; 
      } 
     } 
    } 
+0

'但最終在PERMISSION DENIAL的例外情況下可以在這裏添加完整日誌? –

+0

現在正在工作,我從你之前回答的評論中得到了一個火花:「我在用華爲手機!!!」 –

+0

@bachu多數民衆贊成如果它有助於考慮刻度標記和投票了快樂編碼:) –

相關問題