어플을 실행했을 때 자동으로 데이터(LTE)가 차단되게 하고싶습니다.
구글링으로 소스를 찾아보면서 알아봤는데 안되네요.
아래는 제가 짜본 소스입니다.
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Context mContext = null;
private Button mBtn = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContext = this;
mBtn = (Button) findViewById(R.id.button1);
mBtn.setOnClickListener(this);
}
private void setMobileDataEnabled(boolean enabled) throws Exception {
ConnectivityManager dataManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
Method dataMtd = ConnectivityManager.class.getDeclaredMethod("setMobileDataEnabled", boolean.class);
dataMtd.setAccessible(true);
dataMtd.invoke(dataManager, enabled);
}
@Override
public void onClick(View v) {
if (v.equals(mBtn)) {
try {
setMobileDataEnabled(false);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
매니페스트xml에 퍼미션은 아래 4개를 추가했습니다.
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>