gpt4 book ai didi

java - 电话状态空闲时增加 float

转载 作者:行者123 更新时间:2023-11-30 00:08:26 25 4
gpt4 key购买 nike

一旦电话状态为空闲,我将尝试增加一个 float 。然后将 float 保存在共享首选项中,并在主 Activity 中公开。

目前我所做的是使用 intent 接收电话状态下的号码并发送到主要 Activity ,然后在主要 Activity 中我保存了它。但是一旦我测试手机就会崩溃。以下是我当前的来电

代码:
public class IncomingCall extends BroadcastReceiver {
private View view;

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

try {
System.out.println("Receiver start");
Intent intentBundle = new Intent();
Bundle bundle = new Bundle();
bundle.putFloat("value", 0.5f);

String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);

if (state.equals(TelephonyManager.EXTRA_STATE_IDLE)) {
bundle.putFloat("value", 0.5f);
intentBundle.putExtras(bundle);
Toast toast = new Toast(context);
CharSequence text = "O.5 Added";
int duration = Toast.LENGTH_SHORT;
Toast testtoast = Toast.makeText(context, text, duration);
testtoast.show();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

下面是我在主要 Activity 中的代码:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private float minteger = 0.5f;
private Context context;
private Activity activity;
private static final int PERMISSION_REQUEST_CODE = 1;
private View view;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
SharedPreferences sharedPreferences = this.getSharedPreferences("com.appname.app", Context.MODE_PRIVATE);
sharedPreferences.edit().putFloat("value", minteger).apply();

Float value = sharedPreferences.getFloat("value", 0.0f);

TextView textv = (TextView) findViewById(R.id.numberValue);
textv.setText(String.valueOf(value));

context = getApplicationContext();
activity = this;
Button check_permission = (Button) findViewById(R.id.check_permission);
Button request_permission = (Button) findViewById(R.id.request_permission);
check_permission.setOnClickListener(this);
request_permission.setOnClickListener(this);

}

@Override
public void onClick(View v) {

view = v;

int id = v.getId();
switch (id) {
case R.id.check_permission:
if (checkPermission()) {

Snackbar.make(view, "Permission already granted.", Snackbar.LENGTH_LONG).show();

} else {

Snackbar.make(view, "Please request permission.", Snackbar.LENGTH_LONG).show();
}
break;
case R.id.request_permission:
if (!checkPermission()) {

requestPermission();

} else {

Snackbar.make(view, "Permission already granted.", Snackbar.LENGTH_LONG).show();

}
break;
}
}

private boolean checkPermission() {
int result = ContextCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE);
if (result == PackageManager.PERMISSION_GRANTED) {

return true;

} else {

return false;

}
}

private void requestPermission() {

if (ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.READ_PHONE_STATE)) {

Toast.makeText(context, "Phone state allows you to earn on incoming calls. Please allow in App Settings for additional functionality.", Toast.LENGTH_LONG).show();

} else {

ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.READ_PHONE_STATE}, PERMISSION_REQUEST_CODE);
}
}

@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch (requestCode) {
case PERMISSION_REQUEST_CODE:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

Snackbar.make(view, "Permission Granted, Now you can access phone manager.", Snackbar.LENGTH_LONG).show();

} else {

Snackbar.make(view, "Permission Denied, You cannot access phone manager.", Snackbar.LENGTH_LONG).show();

}
break;
}
}
}

最佳答案

您可以将值放入 IncomingCall 中的 sharedpref 并在 MainActivity 中检索。

关于java - 电话状态空闲时增加 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48579066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com