Java 如何使用android的SE启用流媒体应用程序
我问了一个问题,关于一个带有HTML音频流的Ionic应用程序,它在某些Android手机上无法正常工作Java 如何使用android的SE启用流媒体应用程序,java,android,sdk,selinux,Java,Android,Sdk,Selinux,我问了一个问题,关于一个带有HTML音频流的Ionic应用程序,它在某些Android手机上无法正常工作 我发现问题在于Android SE中的“强制”模式 由于我还没有找到任何解决爱奥尼亚/Cordova问题的方法,我决定用原生Android SDK启动该应用程序 不幸的是,我对本机SDK也有同样的问题:流在“强制”中设置了SE for Android的手机中不起作用 我发现有问题的手机是三星Galaxy S6、三星Galaxy S6 Edge、三星Galaxy Note 5和索尼Xperia
我发现问题在于Android SE中的“强制”模式 由于我还没有找到任何解决爱奥尼亚/Cordova问题的方法,我决定用原生Android SDK启动该应用程序 不幸的是,我对本机SDK也有同样的问题:流在“强制”中设置了SE for Android的手机中不起作用 我发现有问题的手机是三星Galaxy S6、三星Galaxy S6 Edge、三星Galaxy Note 5和索尼Xperia Z4 这是应用程序的java代码:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import java.io.IOException;
import android.media.AudioManager;
import android.media.MediaPlayer;
public class Player extends AppCompatActivity {
private MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_player);
mp = new MediaPlayer();
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
try{
mp.setDataSource("http://69.175.58.196:80/stream");
mp.prepareAsync();
mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
}
catch (IOException e) {
e.printStackTrace();
}
}
}
这是AndroidManifest.xml的内容:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.goradio.ovoradioclub">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".Player">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
似乎我遗漏了一些与SE有关的东西
我也是一名Linux系统管理员,我知道处理SE的唯一方法是根访问
该应用程序的想法是免费进入PlayStore,这样人们就可以只听音乐流了,所以我不能选择通过根设备禁用SE
似乎我遗漏了一些与SE有关的东西
我刚刚在Nexus5上运行了你的代码,运行的是Android 6.0getenforce
,运行于adb shell
,在此设备上显示Enforcing
。这条小溪的水流很好。
Nexus 5X也是如此
我不怀疑您在所引用的设备上有问题。然而,SE强制执行状态似乎是巧合,而不是问题的实际根源
您可能希望查看LogCat,看看是否有任何有趣的消息。注意,<代码>媒体播放器有一种倾向于记录异常的严重性(例如,我认为在警告严重性下记录的错误)。此外,这些消息不会来自您的进程,因此请务必查看所有LogCat,而不是只显示您自己进程的过滤视图。“我已经确定问题在于Android SE中的“强制”模式”——嗯,您是如何确定这一点的?你的确切症状是什么?因为只有在“强制执行”中安装了SE for android的手机不能工作。对不起,我在谷歌上没有找到很多关于SE Android的信息。我是根据SELinux的经验确定的。这并不能解释你的症状是什么。症状是在SE处于“强制”模式的手机中,流永远不会启动。没有显示错误,或者什么都没有,它就是不工作。其他任何一款手机都工作正常,应用程序启动,流媒体开始播放。我不知道LogCat。我将用它进行测试,如果我找到任何解决方案,请写在这里。