Pre Marshmallow我的应用程序将获得它的设备MAC地址 BluetoothAdapter.getDefaultAdapter().getAddress().
现在有了Marshmallow Android正在回归02:00:00:00:00:00.
我看到一些链接(抱歉不知道现在在哪里)说你需要添加额外的权限
<uses-permission android:name="android.permission.LOCAL_MAC_ADDRESS"/>
Run Code Online (Sandbox Code Playgroud)
能够得到它.但它对我不起作用.
获取mac地址需要一些额外的权限吗?
我不确定这是否相关,但清单还包括
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
Run Code Online (Sandbox Code Playgroud)
那么有没有办法获得本地蓝牙mac地址?
尝试学习Dagger2并使用Dagger2 2.14.1。我无法过去:
no suitable method found for inject(SettingsFragment)
Run Code Online (Sandbox Code Playgroud)
SettingsFragment是:
public class SettingsFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener {
....
@Override
public void onAttach(Context context){
AndroidInjection.inject(this); <<<< Error here
super.onAttach(context);
}}
Run Code Online (Sandbox Code Playgroud)
因为我无法从DaggerFragment扩展PreferenceFragmentCompat。
我的建筑商模块是
@Module(subcomponents = {SettingsFragmentSubComponent.class, StartupPhotoFragmentSubComponent.class })
public abstract class UIBuildersModule {
@Binds
@IntoMap
@FragmentKey(SettingsFragment.class)
abstract AndroidInjector.Factory<? extends Fragment> bindSettingsFragmentInjectorFactory(SettingsFragmentSubComponent.Builder builder);
// @ContributesAndroidInjector <<< tried also without luck.
// abstract SettingsFragment bindSettingsFragment();
@ContributesAndroidInjector
abstract StartupPhotoFragment bindStartupPhotoFragment();
Run Code Online (Sandbox Code Playgroud)
我确实为SettingsFragment创建了模块和子组件,但它们确实是空的,因为我想获取在应用程序级别创建的依赖项:
@Module
public class SettingsFragmentModule {
}
@Subcomponent(modules = {SettingsFragmentModule.class})
public interface SettingsFragmentSubComponent extends
AndroidInjector<SettingsFragment> …Run Code Online (Sandbox Code Playgroud) 我创建了以下测试类。问题是没有找到 DaggerTestDiComponent - 即使我可以在构建目录中看到它。
我已经查看了类似的 SO 问题,但它们似乎涉及旧版本的 gradle/Dagger2 并且似乎不适用(至少从我所看到的情况来看)。我的应用程序 Dagger 代码运行正常。
public class TestMvpEngineeringPresenter {
@Mock
IMvpEngineeringView iMvpEngineeringView;
@Inject
MvpEngineeringPresenter mvpEngineeringPresenter;
@Rule
public MockitoRule mockitoRule = MockitoJUnit.rule();
@Before
public void setUp() {
TestDiComponent component = DaggerTestDiComponent.builder()
.testAppModule(new TestAppModule()).build();
component.inject(this);
}
@Test
public void testStationControlSwitchChange() {
mvpEngineeringPresenter.assignEngineeringView(iMvpEngineeringView);
mvpEngineeringPresenter.onLoad();
mvpEngineeringPresenter.switchChanged(new SwitchChange(0, true));
assertEquals(true, mvpEngineeringPresenter.iStationModel.getStationControls().get(0).isOnOff());
mvpEngineeringPresenter.switchChanged(new SwitchChange(0, false));
assertEquals(false, mvpEngineeringPresenter.iStationModel.getStationControls().get(0).isOnOff());
}
Run Code Online (Sandbox Code Playgroud)
}
我的 build.gradle 文件如下所示:
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "com.fisincorporated.mvc_mvp_mvvm"
minSdkVersion 25
targetSdkVersion 25
versionCode …Run Code Online (Sandbox Code Playgroud) 我的 MacBook Pro 配备了新的 M1 芯片和 8GB 内存,运行 Big Sur V11.1 和 Android Studio 4.1.2。在 Android Studio 的几个小时工作过程中,我遇到了 4 个左右的旋转死亡沙滩球,我需要强制退出,有时 Android Studio 会突然消失。
我没有使用模拟器。当我编辑代码时,锁定似乎总是发生。
我已经在安全模式下运行 Mac,这可能会减慢死机的频率,但并不能消除死机。(我没有数数。)
我确实从我的旧 Mac 上进行了数据迁移(一台 10 年前的 Intel 机器,从来没有出现过这个问题,只是速度太慢了)。不知道和这个问题有没有关系。
唯一好的方面是机器速度很快,所以我每次都提交崩溃报告!
只是想知道是否有人有任何智慧之言来解决这个问题。