我正在开发一个应用程序,当应用程序打开时,可能会有任何未接来电显示通知,我如何隐藏或删除通知栏&有没有办法实现它。 我已将所有代码放在我的应用程序中,
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
和
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
但我使用广播接收器打开活动文件,然后在未接来电或消息到达时看到通知
答案 0 :(得分:3)
您可以使用此代码:
public class FullScreen
extends android.app.Activity
{
@Override
public void onCreate(android.os.Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
}
}
答案 1 :(得分:1)
我遇到的问题和你的问题完全相同,但是我对来电和拨打电话都很感兴趣。我找到了来电/未接来电的解决方案,但尚未拨打电话。
您要做的是以下内容:
1.创建BroadCastReceiver类以收听具有最高优先级的来电:
a。在Manifest.xml中添加:
<receiver android:name=".MyPhoneBroadcastReceiver">
<intent-filter android:priority="99999">
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
b。然后是班级
@Override
public void onReceive(final Context context, Intent intent) {
Bundle extras = intent.getExtras();
if (extras != null) {
String state = extras.getString(TelephonyManager.EXTRA_STATE);
final String incomingNumber = extras.getString("incoming_number");
Handler callActionHandler = new Handler();
Runnable runRingingActivity = new Runnable(){
@Override
public void run() {
//Notice the intent, cos u will add intent filter for your class(CustomCallsReceiver)
Intent intentPhoneCall = new Intent("android.intent.action.ANSWER");
intentPhoneCall.putExtra("INCOMING_NUM", incomingNumber);
intentPhoneCall.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intentPhoneCall);
}
};
if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
//increase the delay amount if problem occur something like -the screen didn't show up- that's the key about this method(the delay).
callActionHandler.postDelayed(runRingingActivity, 100);
}
if (state.equals(TelephonyManager.EXTRA_STATE_IDLE)) {
callActionHandler.removeCallbacks(runRingingActivity);
}
}
}
2.a.在Manifest.xml文件中,为您将用作客户呼叫接收者的类添加此意图过滤器。
<activity android:name="CustomCallsReceiver" android:noHistory="true" android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.ANSWER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
2.b.CustomeCallsReceiver类:
public class CustomCallsReceiver extends Activity {
private String TAG = "CustomCallsReceiver";
String incomingNumber, caller;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.custome_calls_receiver);
TextView number = (TextView) findViewById(R.id.number);
number.setGravity(Gravity.CENTER);
incomingNumber = getIntent().getExtras().getString("INCOMING_NUM");
caller = getCallerName(incomingNumber);
if (caller != null) {
number.setText(caller + "\n" + incomingNumber); } }
3.最后当然不要忘记在Manifest.XML文件中添加不是标题或通知栏的主题
<application
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
答案 2 :(得分:0)
您需要在Android清单.xml ..
中设置主题 android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
希望这会对你有帮助..
如果您将其设置为应用程序主题,它将使您应用的所有页面生效..
<application
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
>