2016-08-12 73 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多数民众赞成如果它有助于考虑刻度标记和投票了快乐编码:) –

相关问题