1、打開/packages/apps/Nfc/src/com/android/nfc/beam/BeamManager.java
找到startBeamReceive、startBeamSend方法
public boolean startBeamReceive(Context context,HandoverDataParser.BluetoothHandoverData handoverData) {synchronized (mLock) {if (mBeamInProgress) {return false;} else {mBeamInProgress = true;}}//add codereturn false;add end............
}public boolean startBeamSend(Context context,HandoverDataParser.BluetoothHandoverData outgoingHandoverData,Uri[] uris, UserHandle userHandle) {synchronized (mLock) {if (mBeamInProgress) {return false;} else {mBeamInProgress = true;}}//add codereturn false;add end............
}
return false可以根據具體情況決定是否允許beam。
2、打開/packages/apps/Settings/src/com/android/settings/nfc/AndroidBeamEnabler.java
找到AndroidBeamEnabler方法,注釋掉:
mBeamDisallowedBySystem = RestrictedLockUtilsInternal.hasBaseUserRestriction(context,
UserManager.DISALLOW_OUTGOING_BEAM, UserHandle.myUserId());
public AndroidBeamEnabler(Context context, RestrictedPreference preference) {super(context);mPreference = preference;//add codemBeamDisallowedBySystem=true;//add end//rem code//mBeamDisallowedBySystem = RestrictedLockUtilsInternal.hasBaseUserRestriction(context,// UserManager.DISALLOW_OUTGOING_BEAM, UserHandle.myUserId());//rem endif (!isNfcAvailable()) { mPreference.setEnabled(false);return;}if (mBeamDisallowedBySystem) {mPreference.setEnabled(false);}}