我是android工作室的新手。我正在研究我的大学项目,我制作了这个示例应用程序来打电话,因为我想在我的应用程序中使用此功能。但似乎有一个问题。它告诉我首先要求用户打电话的许可,我不知道该怎么做。任何人都可以帮我吗?
这是java代码。 MainActivity.java
package example.call;
import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("197"));
startActivity(callIntent);
}
});
}
}
这是我在错误中得到的:
答案 0 :(得分:1)
确保您已在Android Manifest文件中授予以下权限。
另请查看此https://stackoverflow.com/questions/7882955/android-permission-call-phone-for-tablet以获取更多信息。
答案 1 :(得分:0)
Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:197"));
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return;
}
startActivity(callIntent);
添加此权限检查(从工作室本身处理)。另外添加" tel:"在电话号码之前。否则可能会导致错误
答案 2 :(得分:0)
在应用内AndroidManifest文件的权限中添加以下行。
initDefaultClock()
在Android中,您需要获得用户的许可才能进行呼叫,访问互联网,访问联系人......