Android Studio startActvity 需要权限
Android Studio startActvity requires permission
我正在尝试执行调用特定号码的简单点击操作,我处于代码的最后阶段,看不出我做错了什么。目前它的 startActivity 操作似乎出现了错误,但我不知道为什么我看了多个教程,我可以看到任何不同之处。在 startActivity 上方时,它通知我需要调用权限?
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
getSupportActionBar().hide();
setContentView(R.layout.activity_home);
//On load the program automatically hides the taskbar.
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
Button b = (Button) this.findViewById(R.id.BTNCall);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
Intent PhoneCall = new Intent(Intent.ACTION_CALL);
PhoneCall.setData(Uri.parse("tel:123"));
startActivity(PhoneCall);
}
});
}
我还在 android 清单中添加了权限
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
由于您是从 OnClickListener 执行此操作,"this" 指针引用您正在实施的 clickListener class,因此您需要获取对 activity 的引用,只需使用:
MyActivityClassName.this.startActivity() //Dont know your class name
那应该去掉红色突出显示。
如果您仍然遇到崩溃,我们将需要 logcat 输出来解决它。
希望对您有所帮助。
您应该将您的目标 SDK 版本设置为 22 级或以下,因为对于 23 级您需要在 运行 时询问用户的许可,查看 there 以获得更好的解释。
我正在尝试执行调用特定号码的简单点击操作,我处于代码的最后阶段,看不出我做错了什么。目前它的 startActivity 操作似乎出现了错误,但我不知道为什么我看了多个教程,我可以看到任何不同之处。在 startActivity 上方时,它通知我需要调用权限?
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
getSupportActionBar().hide();
setContentView(R.layout.activity_home);
//On load the program automatically hides the taskbar.
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
Button b = (Button) this.findViewById(R.id.BTNCall);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
Intent PhoneCall = new Intent(Intent.ACTION_CALL);
PhoneCall.setData(Uri.parse("tel:123"));
startActivity(PhoneCall);
}
});
}
我还在 android 清单中添加了权限
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
由于您是从 OnClickListener 执行此操作,"this" 指针引用您正在实施的 clickListener class,因此您需要获取对 activity 的引用,只需使用:
MyActivityClassName.this.startActivity() //Dont know your class name
那应该去掉红色突出显示。
如果您仍然遇到崩溃,我们将需要 logcat 输出来解决它。
希望对您有所帮助。
您应该将您的目标 SDK 版本设置为 22 级或以下,因为对于 23 级您需要在 运行 时询问用户的许可,查看 there 以获得更好的解释。